IP地址合法性判断及子网判断课设
IP地址的合法性与子网判断计算机网络系统设计书
IP地址的合法性及子网判断计算机网络系统设计书第一章概述1.1课程设计目的本设计要求编写程序,判断一个IP地址是否合法,并判断该地址是否是属于一个给定的子网。
从而考察读者是否对IP地址概念及子网划分有非常清楚的认识。
1.2 课程设计的要求在掌握IP 地址的表示方法及指望划分方法的基础上,按如下要求完成程序。
1)命令行格式:ip_test subnet/mask ip_addr其中,ip_test为程序名;subnet为子网好;mask是一个数值,代表子网掩码连续1 的个数;ip_addr是要测试的IP地址。
例如,要测试的IP地址为202.113.16.10,子网号为202.113.16.0,子网掩码为255.255.255.0,则没命令行为ip_test202.113.16.0/24 202.113.16.10.(因为255.255.255.0是连续的24个1,所以用24表示。
)2)判断subnet和ip_addr的合法性。
在判断IP地址的合法性是要自行编写代码,不要用任何的inet函数。
判断是要考虑全面,比如以下IP 的地址的合法性:123..2.1123.23¥.2.1123.23.45.2.13)判断掩码的合法性。
4)在IP地址合法的前提下,判断ip_addr是否属于子网subnet。
5)输入命令行中的ip是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr是否属于子网subnet。
第二章具体设计2.1设计思路根据以上的要求,并结合当前的所学的一些知识和技术,我们最终通过另一种方式来实现相同的功能,但代码更加优化,高效,方便用户的窗体程序。
对于以上的要求,设计思路如下:1.程序大致流程1)分别判断子网号,掩码和ip地址的基本格式的合法性。
2)如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。
该函数同时判别子网号和掩码是否匹配,子网号为全0或全1,主机号为全0、全1。
编写一个判断IP地址是否合法的计算机程序并给出其子网号
一、实习题目编写一个判断IP地址是否合法的计算机程序,如果合法,给出其子网号二、原理概述所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。
按照TCP/IP协议规定,IP地址用二进制来表示,每个IP 地址长32bit,比特换算成字节,就是4个字节。
例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。
为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。
于是,上面的IP地址可以表示为“10.0.0.1”。
将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。
网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。
IP地址的长度为32位,用点分十进制表示,格式为x.x.x.x,每个x表示8位,每个x的值为0~255。
根据不同的取值范围,IP地址可以分为五类,IP地址中的前五位用于标识IP地址的类别,具体的分类规则如下:一个A类IP地址是指,在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。
如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。
A类IP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。
A类IP地址地址范围1.0.0.1-126.255.255.254。
一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码,。
如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。
B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,每个网络所能容纳的计算机数为6万多台。
ip地址判断,子网判断,掩码判定
学号:0121210680225课程实践报告题目IP地址的合法性以及子网判断学院计算机科学与技术学院专业软件工程班级软件sy1201姓名李安福指导教师刘东飞2015 年 6 月15 日课程实践设计任务书学生姓名:李安福专业班级:软件sy1201 指导教师:刘东飞工作单位:计算机学院题目四: IP地址的合法性及子网判断初始条件:(1)学习相关知识(2)C/C++/VC/VB/JAVA语言(3)PC机一台要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)在掌握IP地址表示方法及子网划分的基础上,按如下要求完成程序。
1)命令行格式:ip_test subnet/mask ip_addr, ip_test其中为程序名;subnet为子网号;mask是一个数值,代表子网掩码连续1的个数;ip_addr是要测试的IP地址。
例如,要测试的IP地址为202.114.16.10,子网号为202.113.16.0,子网掩码为255.255.255.0,则命令行为ip_test 202.113.16.0/24 202.114.16.10(因为255.255.255.0是连续的24个1,所以用24表示)。
2)判断subnet和ip_addr的合法性。
在判断IP地址合法性时要自行编写代码,不要使用任何inet函数。
判断时要考虑全面,比如以下IP地址均不合法:123..2.1 / 123.23$.2.1 / 123.2345.2.1 / 123.23.45.2.13)判断掩码的合法性。
4)在IP地址合法的前提下,判断ip_addr是否属于子网subnet。
5)输出命令行中的ip是否合法,掩码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。
时间安排:第一、二天:查阅资料,学习算法第三、四天:编程调试第五天:书写报告指导教师签名:年月日系主任(或责任教师)签名:年月日《计算机网络》)课程实践设计指导书课程编号:课程名称(中文/英文):《计算机网络》)课程实践设计周数/学分:1周先修课程:操作系统,计算机网络适用专业:计算机,软件一、目的与要求通过一个实际网络协议或网络应用系统的分析与总体设计,综合运用所学知识,加深对网络知识理解和掌握。
IP地址的合法性和子网判断
#include<iostream> #include<ctype.h> #include<math.h> #include<string> usingnamespace std; int a[4]={0,0,0,0}; charIp_addr[15]; char sub_net[15]; intip[4]={0,0,0,0}; intsubnet[4]={0,0,0,0}; int address[4]={0,0,0,0}; int num; // 判断 IP 是否合法 voidaa(char c[15]) { 15!"<<endl;// 分段存放子网//ip 地址// 子网// 分段存放 ip 地址 // 子网掩码// 判断 IP 地址不能超过 15 if(strlen(c)>15) {cout<<endl<<"IP 地址总长度不能超过return; }int dotnum=0;// 判断 IP 地址中是否存在非法字符for(int i=0;i<strlen(c);i++)1)!"<<endl;if(isdigit(c[i])==0 &&c[i]!='.')return ;if(c[i]=='.')dotnum++; }// 判断 IP 地址中只能存在 3 个分隔符if(dotnum!=3){ cout<<endl<<"IP 地址中分隔符只能为 3 个 !"<<endl;return; }// 判断 IP 地址中是否存在连续分隔符for(i=0;i<strlen(c)-1;i++){ if(c[i]=='.'&&c[i+1]=='.'){ cout<<endl<<"IP 地址中出现连续的分隔符return;}}}// 分割 IP 地址void bb(char c[15]){ // 判断 IP 地址中最后不能为分隔符for(int m=0;m<4;m++){ ip[m]=0; }int len;len=strlen(c); cout<<endl<<"IP 地址中含有非法字符 !"<<endl;!"<<endl; if(c[len-1]=='.'){ cout<<endl<<"IP 地址最后们不能为分隔符 return; }char temp[4][15];for(int i=0;i<4;i++)for(int j=0;j<15;j++)temp[i][j]='\0';int j=0;i=0;for(int k=0;k<strlen(c);k++){ if(c[k]!='.'){ temp[i][j]=c[k];j++;}else{ i++;j=0;} }for(i=0;i<4;i++)// 判断每位的长度len=strlen(temp[i]);if(len>3){ cout<<endl<<"IP 地址每位长度不能超过3!"<<endl;return;}switch(len){ case 3:{ while(len!=0){ ip[i]+=(temp[i][len-1]-48)*pow(10,3-len);len--; } break;}case 2:{ while(len!=0){ ip[i]+=(temp[i][len-1]-48)*pow(10,2-len); len--;}break; }default:{ while(len!=0){ ip[i]+=(temp[i][len-1]-48)*pow(10,1-len);255!"<<endl; !"<<endl;len--;}} } }long int num=0;for(i=0;i<4;i++){ // 判断每位的大小不超过 255if(ip[i]>255){ cout<<endl<<"IP 地址数字不能超过return;} }}// 分割网络地址void ee(char c[15]){ // 判断网络地址中最后不能为分隔符for(int m=0;m<4;m++){ subnet[m]=0; }int len;len=strlen(c);if(c[len-1]=='.'){ cout<<endl<<"子网号最后们不能为分隔符return;}3!"<<endl; char temp[4][15];for(int i=0;i<4;i++)for(int j=0;j<15;j++)temp[i][j]='\0';int j=0;i=0;for(int k=0;k<strlen(c);k++){ if(c[k]!='.'){ temp[i][ j]=c[k];j++;}else{ i++;j=0;}}for(i=0;i<4;i++){ // 判断每位的长度len=strlen(temp[i]);if(len>3){ cout<<endl<<"子网号每位长度不能超过return;switch(len){ case 3:{ while(len!=0){ subnet[i]+=(temp[i][len-1]-48)*pow(10,3-len);len--;}break;}case 2:{ while(len!=0){ subnet[i]+=(temp[i][len-1]-48)*pow(10,2-len);len--;}break;}default:{ while(len!=0){ subnet[i]+=(temp[i][len-1]-48)*pow(10,1-len);len--;}255!"<<endl;} }long int num=0;for(i=0;i<4;i++) { // 判断每位的大小不超过 255if(subnet[i]>255){ cout<<endl<<"子网号数字长度不能超过return;}}}// 生成子网掩码void cc(){ cout<<"子网掩码为: ";int r[32];for(int i=0;i<num;i++){ r[i]=1; }for(int j=0;j<32-num;j++) { r[i++]=0; } int p=0;int w[8];int k=0;for(int m=0;m<4;m++){ int sum=0;for (int n=0;n<8;n++){ w[p]=r[k];sum=sum+w[p]*pow(2,7-n);p++;k++;}p=0;a[m]=sum;}for(int n=0;n<4;n++){ cout<<a[n];if(n!=3){ cout<<"."; }}cout<<endl;}// 判断是否和子网相等void dd(){ string s="";for(int i=0;i<4;i++){ if((a[i]&ip[i])==subnet[i]){ s=s+"a";// 如果存在 4 个 a cout<<"结果:";{ cout<<" 属于同一子网!"<<endl;if(s=="aaaa"){ cout<<" 不属于同一子网!"<<endl;void main(){ cout<<" ************IP 地址的合法性及子网的判断*************"<<endl;elsecout<<" 设计成员XXX XX X"<<endl;char jj='y';while(jj!='n')cout<<"请输入IP 地址:";cin>>Ip_addr;cout<<"请输入连续 1 的个数:";cin>>num;cout<<"请输入子网号:"cin>>sub_net;cout<<"IP 地址为:";。
ip合法性课程设计
ip合法性课程设计一、课程目标知识目标:1. 让学生理解IP(知识产权)的基本概念,掌握IP的种类及其法律保护方式。
2. 使学生了解我国关于知识产权的法律体系,理解知识产权保护的重要性。
3. 引导学生掌握判断IP合法性的基本方法,能够分析常见的IP侵权行为。
技能目标:1. 培养学生运用网络资源进行IP信息检索、查询的能力。
2. 提高学生分析、解决实际IP问题的能力,学会运用法律知识保护自身和他人的知识产权。
3. 培养学生的团队协作能力和沟通表达能力,能在小组讨论中积极发表自己的观点。
情感态度价值观目标:1. 培养学生尊重知识、尊重创造的良好品质,树立知识产权保护意识。
2. 增强学生的法治观念,使他们遵纪守法,自觉维护知识产权。
3. 激发学生对科技创新的兴趣,鼓励他们积极参与知识产权保护活动。
本课程旨在帮助学生掌握知识产权的基本知识,提高他们在实际生活中识别、分析和解决IP问题的能力。
针对初中年级学生的认知特点,课程设计注重实践性和趣味性,结合案例分析、小组讨论等多种教学方法,使学生在轻松愉快的氛围中学习。
课程目标具体、可衡量,以便教师能够有效开展教学评估,确保学生达到预期学习成果。
二、教学内容1. 知识产权概述- 知识产权的定义与特点- 知识产权的种类及其保护方式2. 我国知识产权法律体系- 知识产权法律法规简介- 知识产权保护机构及其职能3. IP合法性判断- 常见IP侵权行为分析- 知识产权侵权案例解析- 判断IP合法性的方法与技巧4. 实践操作与案例分析- 网络资源检索与应用- 小组讨论与成果展示- 创意作品保护实践教学内容依据课程目标,结合教材相关章节,进行科学、系统的组织。
在教学过程中,教师将按照以下进度安排教学内容:第一课时:知识产权概述第二课时:我国知识产权法律体系第三课时:IP合法性判断(上)第四课时:IP合法性判断(下)第五课时:实践操作与案例分析三、教学方法本课程将采用以下多样化的教学方法,以激发学生的学习兴趣,提高他们的主动性和实践能力:1. 讲授法:- 教师通过生动的语言和丰富的案例,系统地讲解知识产权的基本知识和法律体系,为学生奠定扎实的理论基础。
IP地址合法性判断及子网检测_实验报告
IP地址合法性判断及子网检测_实验报告实验报告-IP地址合法性判断及子网检测一、实验目的1.了解IP地址的基本知识和表示方法;2.掌握判断IP地址合法性的方法;3.掌握网络子网的划分方法;4.通过实验掌握子网掩码的设置方法。
二、实验器材1.一台安装有操作系统的计算机;2.网络连接线。
三、实验原理1.IP地址的基本知识IP地址是互联网协议指定的32位二进制数字,一般采用四个十进制数(0~255)表示,每个数之间使用“.”分隔。
例如:192.168.1.1、IP地址可以分为两部分,网络地址和主机地址。
网络地址用于标识网络,主机地址用于标识网络中的主机。
2.IP地址合法性判断方法IP地址的每个数必须在0~255的范围内,且IP地址的格式必须满足“N1.N2.N3.N4”的形式,N1、N2、N3和N4分别表示IP地址的四个数字段。
在判断IP地址的合法性时,需要判断每个数字段的值是否在0~255之间。
同时,IP地址的每个数字段之间需要用“.”分隔,且不能有其他的字符。
3.子网划分方法子网划分是将一个大的IP地址段划分成多个小的IP地址段的过程。
子网划分的目的是将一个大的网络划分成若干个小的网络,增加网络的可管理性和安全性。
子网掩码是用于划分子网的重要参数,用于将IP地址划分为网络地址和主机地址。
子网掩码是一个32位的二进制数字,一般采用四个十进制数表示,例如:255.255.255.0。
子网掩码规定了IP地址前面的网络地址的长度。
四、实验内容1.判断一个给定的IP地址是否合法;2.给定一个IP地址和子网掩码,判断该IP地址是否属于指定的子网。
五、实验步骤1.判断IP地址的合法性。
编写程序,输入一个IP地址,判断该IP地址是否合法。
(1)将IP地址按照“.”进行分割,得到四个数字段;(2)判断每个数字段的值是否在0~255之间;(3)判断数字段之间是否使用“.”进行分隔。
2.判断IP地址是否属于指定子网。
编写程序,输入一个IP地址和子网掩码,判断该IP地址是否属于指定的子网。
IP地址合法性判断及子网判断课设
课程设计任务书连续两个•含有非法字符每部分长度超过3含有超过三个的•每部分大于255内容及要求:判断IP 和子网是否合法,接着将IP 地址一位位与子网掩码做与运算,看结果是否和子网相等来判断IP 地址是否属于某一个网络。
设计总要求:实现判断输出命令行中的IP 是否合法,掩码是否合法以及ip_addr 是否是 属于子网sub net 。
将IP 地址一位位与子网掩码做与运算,看结果是否和子网相 等来判断IP 地址是否属于某一个网络。
在这个设计中考虑到了以上的种种情况, 根据用户输入的IP 地址,掩码和子网,程序可以判断输入的IP 地址,掩码和子 网是否正确以及ip_addr 是否是属于子网sub net 。
在判断不合法IP 时要考虑全面,比如以下情况均属于不合法123 . . 2 . 1.2 123 . 23$ . 2 . 1 123 . 2345 . 2 . 1 123 . 23 . 45 . 2. 1 256.123.3.3进度安排:第1周:布置课程设计任务;查阅资料;分组进行程序设计。
第2周:程序设计和调试;程序验收;答辩;上交课程设计报告目录一课程设计目的和意义 ................................................................. 4.1 . 1设计目的 (4)1 . 2设计的意义................................................................. 4.二协议的内容说明,关键技术的说明 (6)2. 1 ip地址简介................................................................. 6.2. 2子网掩码简介.............................................................. 8.2. 3 ip地址的计算 .............................................................. 8.2. 4子网划分简介 (10)3. 1主程序设计................................................................ 1.13. 2验证ip地址合法性 (12)3 . 3验证ip是否属于某个子网 (13)3.4 代码........................................................................ 1.4 四程序的运行和调试结果. (26)运行结果 (26)五课程设计小结 (28)六参考文献 (29)一课程设计目的和意义1.1设计目的1 .加深对IP地址及sub net的认识;2 .了解IP地址的划分;3. 了解sub net的作用和产生因素,sub net的划分;4. 实际操作编写规则,匹配IP和sub net,加深理解1 . 2设计的意义1、有利于基础知识的理解通过《计算机网络》的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。
IP地址的合法性及子网判断-JAVA
IP地址的合法性及子网判断-JAVA学0121010680221号:课程设计题目IP地址的合法性及子网判断学院计算机科学与技术学院专业软件工程班级1002姓名王思腾指导教师刘东飞2013 年 6 月19 日目录1任务书 (3)2相关知识 (4)3课程设计分析 (6)4 程序清单及注释 (9)5 运行结果分析及结论 (12)6 心得感悟。
147 参考文献 ............................................ 错误!未定义书签。
课程设计任务书学生姓名:王思腾专业班级:软件1002班指导教师:刘东飞工作单位:计算机学院题目四: IP地址的合法性及子网判断初始条件:(1)学习相关知识(2)C/C++/VC/VB/JAVA语言(3)PC机一台要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)在掌握IP地址表示方法及子网划分的基础上,按如下要求完成程序。
1)命令行格式:ip_test subnet/mask ip_addr, ip_test其中为程序名;subnet为子网号;mask是一个数值,代表子网掩码连续1的个数;ip_addr是要测试的IP地址。
例如,要测试的IP地址为202.114.16.10,子网号为202.113.16.0,子网掩码为255.255.255.0,则命令行为ip_test 202.113.16.0/24 202.114.16.10(因为255.255.255.0是连续的24个1,所以用24表示)。
2)判断subnet和ip_addr的合法性。
在判断IP 地址合法性时要自行编写代码,不要使用任何inet函数。
判断时要考虑全面,比如以下IP地址均不合法:123..2.1 / 123.23$.2.1 / 123.2345.2.1 / 123.23.45.2.13)判断掩码的合法性。
4)在IP地址合法的前提下,判断ip_addr是否属于子网subnet。
IP地址合法性判断及子网检测大学课程设计实验报告
I P地址合法性判断及子网检测大学课程设计实验报告文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]四川理工学院实验报告实验名称IP地址合法性判断及子网检验课程名称计算机科学与技术姓名成绩班级学号日期2013年1月地点计算机学院一.实验目的本设计要求编辑写程序,判断一个ip地址是否合法,并判断该地址是否属于一个给定子网,从而考察读者是否对ip地址概念及其子网划分有非常清楚的认识。
1加深对IP地址及subnet的认识;2.了解IP地址的划分;3. 了解subnet的作用和产生因素,subnet的划分;4. 实际操作编写规则,匹配IP和subnet,加深理解二.设计要求在掌握ip地址表示方法及子网划分方法的基础上,按如下要求完成程序。
1:命令格式:ip_test subnet/mask ip_addr其中,ip_test为程序名;subnet为子网号,mask是一个数值,代表子网掩码连续1的个数,ip_addr是要测试的ip地址。
2:判断subnet和ip_addr的合法性。
在判断ip地址合法性时要自行编代码,不要使用任何inet函数。
判断时要考虑全面。
3:判断掩码的合法性。
4:在ip地址合法的前提下,判断ip_addr是否属于子网subnet。
5:输出命令行中的ip是否合法,掩码是否合法,以及ip_addr是否属于子网subnet.三.实验环境(软件、硬件及条件)1.软件操作系统:Windows xp(Windows NT以上版本皆可)编程环境:Microsoft Visual Studio 2008(兼容MS VS2005,亦可使用等)编程语言:C++测试环境: MS-DOS2.硬件现阶段常见PC四.实验方法Part 1实验原理我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网,每个网络中的计算机通过其自身的IP地址而被唯一标识的,据此我们也可以设想,在Internet上这个庞大的网间网中,每个网络也有自己的标识符。
ip地址的合法性及子网判断
将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案:将IP地址空间划分成不同的类别,每一类具有不同的网络号位数和主机号位数。
1.A类IP地址
一个A类IP地址由1字节的网络地址和3字节主ห้องสมุดไป่ตู้地址组成,网络地址的最高位必须是“0”, 地址范围1.0.0.1-126.255.255.254(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110)。可用的A类网络有126个,每个网络能容纳1600多万个主机。
3.4 子网划分简介
子网的划分,实际上就是设计子网掩码的过程。子网掩码主要是用来区分IP地址中的网络ID和主机ID,它用来屏蔽IP地址的一部分,从IP地址中分离出网络ID和主机ID.子网掩码是由4个十进制数组成的数值"中间用"。"分隔,如255.255.255.0。若将它写成二进制的形式为:11111111.11111111.11111111.00000000,其中为"1"的位分离出网络ID,为"0"的位分离出主机ID,也就是通过将IP地址与子网掩码进行"与"逻辑操作,得出网络号。
IP合法性子网判断
计算机网络课程设计报告摘要设计要求编写程序,实现判断输出命令行中的ip 是否合法,掩码是否合法以及ip_addr 是否是属于子网subnet 。
采用eclipse的开发工具,使用java 编程实现,在判断ip 地址合法性时,定义了一个静态的方法,在方法里面,使用正则表达式来判断ip 地址的合法性,判断子网掩码也采用这样的方法判断,在判断ip 地址是否属于某一个子网时。
将ip 地址一位位与子网掩码做与运算,看结果是否和子网相等来判断ip地址是否属于某一个网络。
Ip地址采用点分10进制的方法来表示,最大的数为255,最小的数为0,其中数字不能以0开头。
子网掩码则只能有32种情况,其中网络号全1,主机号全0,由1和0的个数来确定子网掩码是否正确。
在这个设计中考虑到了以上的种种情况,根据用户输入的ip地址,掩码和子网,程序可以判断输入的ip地址,掩码和子网是否正确以及ip_addr是否是属于子网subnet。
b5E2RGbCAP一课程设计目的和意义1.1设计目的掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。
并判断该地址是否属于一个给定的子网。
p1EanqFDPw1.2设计的意义1、有利于基础知识的理解通过《计算机网络与Internet教程》必修部分的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。
但是,学生对于程序、病毒的内涵,程序与文档、数据的区别,计算机运行的机理等知识内容的理解比较肤浅。
学生如果接触了程度设计,就能真正理解,从而进一步打破计算机的神秘感。
DXDiTa9E3d2、有利于逻辑思维的锻炼程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。
即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。
IP地址合法性判断及子网判断课设
课程设计任务书连续两个•含有非法字符每部分长度超过3含有超过三个的•每部分大于255内容及要求:判断IP 和子网是否合法,接着将IP 地址一位位与子网掩码做与运算,看结果是否和子网相等来判断IP 地址是否属于某一个网络。
设计总要求:实现判断输出命令行中的IP 是否合法,掩码是否合法以及ip_addr 是否是 属于子网sub net 。
将IP 地址一位位与子网掩码做与运算,看结果是否和子网相 等来判断IP 地址是否属于某一个网络。
在这个设计中考虑到了以上的种种情况, 根据用户输入的IP 地址,掩码和子网,程序可以判断输入的IP 地址,掩码和子 网是否正确以及ip_addr 是否是属于子网sub net 。
在判断不合法IP 时要考虑全面,比如以下情况均属于不合法123 . . 2 . 1.2 123 . 23$ . 2 . 1 123 . 2345 . 2 . 1 123 . 23 . 45 . 2. 1 256.123.3.3进度安排:第1周:布置课程设计任务;查阅资料;分组进行程序设计。
第2周:程序设计和调试;程序验收;答辩;上交课程设计报告目录一课程设计目的和意义 ................................................................. 4.1 . 1设计目的 (4)1 . 2设计的意义................................................................. 4.二协议的内容说明,关键技术的说明 (6)2. 1 ip地址简介................................................................. 6.2. 2子网掩码简介.............................................................. 8.2. 3 ip地址的计算 .............................................................. 8.2. 4子网划分简介 (10)3. 1主程序设计................................................................ 1.13. 2验证ip地址合法性 (12)3 . 3验证ip是否属于某个子网 (13)3.4 代码........................................................................ 1.4 四程序的运行和调试结果. (26)运行结果 (26)五课程设计小结 (28)六参考文献 (29)一课程设计目的和意义1.1设计目的1 .加深对IP地址及sub net的认识;2 .了解IP地址的划分;3. 了解sub net的作用和产生因素,sub net的划分;4. 实际操作编写规则,匹配IP和sub net,加深理解1 . 2设计的意义1、有利于基础知识的理解通过《计算机网络》的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。
ip地址的合法性及子网判断
ip地址的合法性及子网判断实验九:IP地址的合法性及子网判断#include#include#include#include//类结构class ipTest{char ip[15]; //定义ip数组,存放ip地址char subnetPlusMask[18]; //定义subnetPlusMask数组,存放子网号和子网掩码中1的个数char subnet[18]; //定义subnet数组,存放子网号char TempIp[15]; //定义TempIp数组,存放临时的ip地址char TempSub[18]; //定义TempSub数组,存放临时的子网号int mask; //定义整型mask,存放子网掩码中1的个数bool maskIsValid;//定义布尔值maskIsValid,存放判断mask真值的变量public:ipTest(char *,char *); //定义ipTest函数ipTest(){};bool NoIllegalChar(char *); //非法字符的判断bool ipIsValid(char *); //判断IP地址是否合法bool subnetIsValid(char *); //判断子网号是否合法void belong(); //判断IP是否为子网成员print();//定义输出函数print};//主函数void main(int argc,char *argv[]){if(argc != 3){ //判断参数格式是否正确cout <<"Please input command: ip_test subnet/mask ip" ;return;}else{if(strlen(argv[1]) > 18){ //先判断最简单的错误,子网号及子网掩码长度和是否超出cout <<"subnet/mask is too long";return;}if(strlen(argv[2]) > 15){ //ip地址长度是否超出cout<<"ip Address is too long";return;}ipTest test(argv[1],argv[2]); //实例化ipTest类test.print(); //完成相应判别并输出结果}}//构造函数ipTest::ipTest(char* subnetPlusMask,char *ip){maskIsValid = true;char temp[2];//把'/'前的字符复制到subnet字符数组中int smLen = strlen(subnetPlusMask); // 定义smLen为subnetPlusMask的长度for(int i = 0;i < smLen && subnetPlusMask[i] != '/';i++)this->subnet[i] = subnetPlusMask[i]; //对subnet数组赋值,值为subnetPlusMask中的数值this->TempSub[i] = subnetPlusMask[i]; //对TempSub数组赋值,值为subnetPlusMask 中的数值}subnet[i] = '\0';//给数组加上结束符TempSub[i] = '\0'; //给数组加上结束符if(i >= smLen-2){ //初始化mask和maskIsValidif(i == smLen-2){temp[0] = subnetPlusMask[i+1];if(!isdigit(temp[0])) //判断temp中的值是否为字符maskIsValid = false;}else{if(i == smLen-3){temp[0] = subnetPlusMask[i+1];temp[1] = subnetPlusMask[1+2];if(!(isdigit(temp[0])&&isdigit(temp[1]))) //判断temp中的值是否为字符maskIsValid = false;}}mask = atoi(temp); //将temp中的字符数值化if(mask <0 || mask >32) //判断mask值是否超出范围maskIsValid = false;else //用十进制数表示的掩码中1的个数只能是一位数或者两位数maskIsValid = false;strcpy(this->subnetPlusMask,subnetPlusMask); //给subnetPlusMask赋值strcpy(this->ip,ip); //给IP赋值strcpy(this->TempIp,ip);}//调用判别函数,并输出结果ipTest::print(){bool subIsV = subnetIsValid(TempSub);bool ipIsV = ipIsValid(TempIp);//判断子网是否合法if(!subIsV)cout <<"subnet is invalid!" <<endl;< p="">elsecout <<"valid subnet:" <<<endl;<="" p="">//判断掩码是否合法if(!maskIsValid)cout <<"mask is invalid!" <<endl;< p="">elsecout <<"valid mask:" <<<endl;<="" p="">//判断ip地址是否合法if(!ipIsV)cout <<"Ip address is invalid!" <<endl;< p="">elsecout <<"valid ip address:" <<<endl;<="" p="">//判断ip地址是否属于子网if(subIsV && ipIsV && maskIsValid)belong();}//子网数,判断输入是否含有非数字字符bool ipTest::NoIllegalChar(char *ch){unsigned int i,k=0;for(i=0;i <strlen(ch);i++)< p="">if(isdigit(*(ch+i))==0)//判断每一位是否为数字字符return false;return true; //若不含有非法数字字符则返回true}//判别IP地址是否合法bool ipTest::ipIsValid(char * ip){char ch[]="."; //分隔符char *token,*dot[4];int iplen = 0;token = strtok(ip,ch); //以"."标志将IP字符串按节分开while(token!=NULL){ //循环进行,直到结束dot[iplen]=token; //将分开的每段赋值给dotiplen++;token = strtok(NULL,ch);}//判断IP地址的段数if(iplen != 4) //段数不对return false;for(int i = 0; i < 4; i++)if(!NoIllegalChar(dot[i])||atoi(dot[i])>255) //有非法字符或某段值非法return false;return true;}//判断子网号是否合法bool ipTest::subnetIsValid(char* subnet){if(!ipIsValid(subnet)) //调用判别IP地址合法性的函数return false;return true;}//判断IP是否为子网成员,判断子网号与掩码是否匹配,以及子网号、主机号全0全1问题void ipTest::belong(){int subLen = strlen(subnet);int ipLen = strlen(ip);unsigned int iIPA,iSubA,iMask;unsigned char subA[4],ipA[4];char temp[3];int i,j,t = 0;for (i = 0, j= 0;i <sublen;i++)< p="">{//不用检错if(subnet[i]!='.')temp[j++]=subnet[i]; //temp数组中放'.'间的串else{subA[3-t] = atoi(temp); //subA数组中放'.'间的数据j=0;t++;temp[0]=temp[1]=temp[2]='\0';}}subA[0]=atoi(temp);temp[0]=temp[1]=temp[2]='\0';iSubA=*(unsigned int *)subA; //iSubA中放subnet中'.'除外的串对应的数for(i=0,j=0,t=0;i <iplen;i++)< p="">{ //不用再检错if(ip[i]!='.')temp[j++]=ip[i];else{ipA[3-t]=atoi(temp);j=0;t++;temp[0]=temp[1]=temp[2]='\0';}}ipA[0]=atoi(temp);iIPA=*(unsigned int*)ipA; //iIPA中放IP中'.'除外的串对应的数//获得掩码iMask = 0xffffffff;iMask <<=(32-mask);if((iSubA | iMask)!= iMask){ //说明sub与mask不匹配cout <<"subnet and mask not match!" ;return;}if((iSubA^iMask)==0){ //说明子网号全1cout <<"subnet is all 1!" ; return;}if((iSubA&iMask)==0){ //说明子网号全0cout <<"subnet is all 0!" ; return;}if((iSubA)==(iIPA&iMask)) {//IP和掩码与,结果和子网号比较if((iIPA|iMask)==iMask){//说明主机号全0cout <<"Ip address is all 0!" ; return;}if((iIPA|iMask)==0xffffffff) {//说明主机号全1cout <<"Ip address is all 1!"; return;}//ip属于subnetcout <<" " <<<endl;<="" < return;}//ip不属于subnetelsecout <<" " <<<。
网络课程报告IP地址的合法及子网判断
网络课程报告IP地址的合法及子网判断中国计量学院现代科技学院课程设计报告本课程设计名称 IP地址的合法性及子网判断系(部)信息系学号专业计算机姓名班级 101 指导教师虞戟2013 年 7 月 5 日课程设计报告目录中国计量学院现代科技学院课程设计报告P.1IP合法性和子网的判断一、设计的目的和要求1.目的掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。
并判断该地址是否属于一个给定的子网。
判断IP地址属于A B C那类网。
2.要求根据后面介绍的IP地址与子网划分的知识,编写程序判断IP地址的合法性及属于子网。
1)以命令行形式运行:IPAddress subnet_address/mask ip_address其中,IPAddress为程序名,subnet_address为子网地址,mask为掩码,ip_address为IP地址2)判断IP地址属于A B C那类网。
3)判断subnet和ip_addr的合法性。
在判断IP地址合法性时要自行编写代码,不要使用任何inet 函数。
判断时要考虑各种情况,全面分析问题。
4)判断掩码的合法性。
譬如说mask的值为负数或者大与32,这时输入的掩码就不合法。
5)在IP地址合法,掩码合法以及子网号也合法的前提下,判断ip_addr是否属于subnet。
6)输出命令行中的ip是否合法,掩码是否合法,子网号码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。
7)还可以判断子网号,主机号全0,全1问题。
1中国计量学院现代科技学院课程设计报告P.2 二、设计任务通过程序正确的实现对IP地址合理性的判断;当给定一IP地址时,本程序能实现对其IP地址、子网地址、掩码的合法性做出正确的判断,以及能判断该IP地址是否属于子网,和IP地址属于A B C哪类网络三、设计方案分析(一)总体设计1.分别输入子网号、掩码和IP地址。
2.分别判断子网号、掩码和IP地址的基本格式是否合法。
编写一个判断IP地址是否合法的计算机程序,如果合法,给出其子网号
计算机网络与通信实习报告实习题目编写判断IP地址是否合法的计算机程序并给出子网号学生专业班级学生姓名(学号)指导教师完成时间 2010年5月21日实习(设计)地点信息楼139机房2010 年5月21日一、实验题目编写一个判断IP地址是否合法的计算机程序,如果合法,给出其子网号一、原理概述1.TCP/IP协议的网络层使用的地址标识符叫做IP地址,IP v.4中IP地址是一个32位的二进制地址。
网络中的每一个主机或路由器至少有一个IP地址,在Internet中不允许有两个设备使用相同的IP地址。
如果一台主机或路由器连接到两个或多个物理网络,那么它可以拥有两个或多个IP地址。
IP位,每个x的值为0~255(例如202.133.29.119)。
根据不同的取值范围,IP地址可以氛围五类,IP地址中的前五位用于标识IP地址的类别,具体的分类规则如下:A类地址的第一位为0。
B类地址的第两位为10。
C类地址的第三位为110。
D类地址的第四位为1110。
E类地址的第五位为11110。
A位,因此每一个A类网络的主机IP数理论上为2^24=16777216,由于全0和全不能用,所以每一个A类网络的主机IP数为16777214。
B类IP地址适用于一些国际性大公司与政府机构等中等大小的组织。
由于网络IP长度为14位,因此允许有2^14=16384个不同的B类网络,实际允许连接16382个网络。
C类IP地址适用于一些小公司与普通研究机构。
2. 设计IP地址的最初目的是希望每个IP地址都能唯一地、确定地标示一个网络或一台主机,但是这种方法同时也存在着两个重要的问题,即IP地址的有效利用率和路由器的工作效率。
为了解决这个问题,人们提出了子网(subnet)和超网(supernet)的概念。
划分子网实际上就是在IP地址系统中增加一个层次。
三级IP地址的表示方法为net ID-subnet ID-host ID。
第一级网络号定义了网点的位置;第二级网络号定义了物理子网;第三级主机号定义了主机和路由器到物理网络的连接。
ip地址合法性及子网判断
} //二进制的字符串转换成十进制数 void ToMask(char *s,int *a) {
int i,j,k,t,temp; for(i=4;i>0;i--) {//划分成 4 个块
t=0;temp=0; for(j=8*i-1;j>=8*(i-1);j--) {//每块的 8 位二进数转换成十进制数
2. 课题分析与设计 (1)分析子网和 IP 地址的合法性 子网号和 IP 地址格式:X.X.X.X,其中 X 必须是 0~255,中间用点隔开,由四段组成。 全 0 和全 1 以及以 0 和 127 不可用,因此 X 不能全部为 0 和 255,且第一个 X 不能为 0 和 127。 先分离子网(subnet/mask),以“/”作为分界分离出子网号和子网掩码,然后使用字符 串存储子网号和 IP 地址。初次判断 X 包含的字符是否是 0~9 的字符,其个数是否处 于 1~3 之间,X 的个数是否为 4,点的个数是否为 3,X 与点是否交替出现,且 X 比 点先出现。然后将 X 转换成十进制数,再判断第一个 X 是否为 127,所有 X 是否全 部为 0 和 255。最后判断子网掩码是否为 1~31 之间,如果合法,再将其转换成点分 十进制形式。 (2)分析子网与 IP 地址的关系 将子网号,IP 地址分别和子网掩码相与,如果相与的结果相同,则 IP 地址属于子网, 否则 IP 地址不属于子网。
1
山东轻工业学院 信息学院 11-12 学年第 2 学期 2009 级计算机网络课程设计
(3)[程序流程]
3. 设计使用的技术介绍 (1)程序开发环境:Visual Studio2010 集成开发环境 (2)程序使用语言:C 语言
校验和ip地址
计算机网络课程设计报告学院 ********班级 J电信工程1002姓名 ******学号 **********指导教师 ****2013年6月21日课程设计一:计算校验和一、课程设计的目的网络上的信号最终都是通过物理传输线路进行传输的,如果高层没有采用差错控制,那么物理层传输的数据信号是可能有差错的。
为了保证数据的正确性,在物理层的基础上设计了数据链路层。
设计数据链路层的主要作用就是在原始的、有差错的物理传输线路的基础上,采用差错检测、差错控制与流量控制等方法,将有差错的物理线路改进成逻辑上无差错的数据链路,以向网络层提供高质量的服务。
本课程设计主要通过一个简单例子使学生了解网络协议中校验和的计算过程,以及设置校验和的作用。
目前,进行差错检测和差错控制的主要方法是:在需要传输的数据分组后面加上一定的冗余信息,这样的冗余信息通常都是通过对所发送数据应用某种算法进行计算而得到的。
数据的接收方在接收到数据后进行同样的计算再与收到的冗余信息进行比较,如果结果不同就说明出现了差错,此时可以要求发送方重传该数组数据,以此达到数据准确性的目的。
在普遍使用的网络协议中都设置了校验和项以保存这些冗余信息,例如Ipv4、ICMPv4、IGMPv4、ICMPv6、UDP和TCP等等。
计算校验和的算法称为国际校验和算法,简单来说,就是把被校验的数据按16位进行累加,然后取反码。
若数据字节长度为奇数,则在这数据尾部补一个字节的0以凑成偶数。
关于计算校验和算法更详细的信息请参考RFC1071。
二、课程设计要求根据前面介绍的算法,编制程序为给定数据计算校验和。
1)以命令形式运行:check_sum infile其中check_sum为程序名,infile为输入数据文件名。
2)输出:数据文件的校验和。
三、课程设计分析校验过程分为三个步骤:数据文件的传输、校验和的计算、校验结果的输出。
其中,主要的是数据的输入和校验和的计算过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书目录一课程设计目的和意义 (3)1.1设计目的 (3)1.2设计的意义 (3)二协议的内容说明,关键技术的说明 (4)2.1 ip地址简介 (4)2.2 子网掩码简介 (5)2.3 ip地址的计算 (6)2.4 子网划分简介 (7)3.1主程序设计..................................................................................... (8)3.2验证ip地址合法性 (8)3.3验证ip是否属于某个子网 (9)3.4代码 (10)四程序的运行和调试结果 (19)运行结果 (19)五课程设计小结 (21)六参考文献 (21)一课程设计目的和意义1.1设计目的1.加深对IP地址及subnet的认识;2.了解IP地址的划分;3. 了解subnet的作用和产生因素,subnet的划分;4. 实际操作编写规则,匹配IP和subnet,加深理解1.2设计的意义1、有利于基础知识的理解通过《计算机网络》的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。
但是,学生对于程序、病毒的内涵,程序与文档、数据的区别,计算机运行的机理等知识内容的理解比较肤浅。
学生如果接触了程度设计,就能真正理解,从而进一步打破计算机的神秘感。
2、有利于逻辑思维的锻炼程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。
即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。
3、有利于与其他学科的整合在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。
在信息技术课中整合其它学科的知识,发挥信息技术的优势。
4、有利于治学态度的培养。
程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。
因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。
这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。
二协议的内容说明,关键技术的说明2.1 ip地址简介所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。
按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。
例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。
为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。
于是,上面的IP地址可以表示为“10.0.0.1”。
IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多。
有人会以为,一台计算机只能有一个IP地址,这种观点是错误的。
我们可以指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP地址就是一台计算机;另外,通过特定的技术,也可以使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。
将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。
网络号的位数直接决定了可以分配的网络数(计算方法2^网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2^主机号位数-2)。
然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案:将IP地址空间划分成不同的类别,每一类具有不同的网络号位数和主机号位数。
1.A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围1.0.0.1-126.255.255.254(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110)。
可用的A类网络有126个,每个网络能容纳1600多万个主机。
2.B类IP地址一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围128.1.0.1-191.254.255.254(二进制表示为:10000000 00000001 00000000 00000001 - 10111111 11111110 11111111 11111110)。
可用的B 类网络有16382个,每个网络能容纳6万多个主机。
3.C类IP地址一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。
范围192.0.1.1-223.255.255.254(二进制表示为: 11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110)。
C类网络可达209万余个,每个网络能容纳254个主机。
4.D类地址用于多点广播(Multicast)。
D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。
它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。
多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
地址范围224.0.0.1-239.255.255.2545.E类IP地址以“11110”开始,为将来使用保留。
E类地址保留,仅作实验和开发用。
全零(“0.0.0.0”)地址指任意网络。
全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
2.2 子网掩码简介通过 IP 地址的二进制与子网掩码的二进制进行与运算进行定某个设备的网络地址,也就是说通过子网掩码分辨一个网络的网络部分和主机部分子网掩码一旦设置,网络地址和主机地址就固定了。
相对于使用子网掩码来识别网络地址,早期的使用类别进行网络地址的分类存在着地址大量浪费的不足。
子网一个最显著的特征就是具有子网掩码。
与IP地址相同,子网掩码的长度也是32位,也可以使用十进制的形式。
例如,为二进制形式的子网掩码:11111111111111111111111100000000,采用十进制的形式为:255.255.255.0。
用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。
在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。
2.3 ip地址的计算定义子网掩码的步骤为:A、确定哪些组地址归我们使用。
比如我们申请到的网络号为“210.73.a.b”,该网络地址为C类IP地址,网络标识为“210.73.a”,主机标识为“.b”。
B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。
比如我们现在需要12个子网,将来可能需要16个。
用第三个字节的前四位确定子网掩码。
前四位都置为“1”(即把第三字节的最后四位作为主机位,其实在这里有个简单的规律,非网络位的前几位置1原网络就被分为2的几次方个网络,这样原来网络就被分成了2的4次方16个子网),即第三个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。
C、把对应初始网络的各个位都置为“1”,即前两个字节都置为“1”,第四个字节都置为“0”,则子网掩码的间断二进制形式为:“11111111.11111111.11110000.00000000”D、把这个数转化为间断十进制形式为:“255.255.240.0”这个数为该网络的子网掩码。
子网掩码一共分为两类。
一类是缺省子网掩码,一类是自定义子网掩码。
缺省子网掩码即未划分子网,对应的网络号的位[1][2]都置1,主机号都置0。
A类网络缺省子网掩码:255.0.0.0B类网络缺省子网掩码:255.255.0.0C类网络缺省子网掩码:255.255.255.0自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上我们可以认为是将主机号分为两个部分:子网号、子网主机号。
形式如下:未做子网划分的ip地址:网络号+主机号做子网划分后的ip地址:网络号+子网号+子网主机号也就是说ip地址在化分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。
子网掩码是32位二进制数,它的子网主机标误用部分为全“0”。
利用子网掩码可以判断两台主机是否中同一子网中。
若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。
2.4 子网划分简介子网的划分,实际上就是设计子网掩码的过程。
子网掩码主要是用来区分IP地址中的网络ID和主机ID,它用来屏蔽IP地址的一部分,从IP地址中分离出网络ID和主机ID.子网掩码是由4个十进制数组成的数值"中间用"。
"分隔,如255.255.255.0。
若将它写成二进制的形式为:11111111.11111111.11111111.00000000,其中为"1"的位分离出网络ID,为"0"的位分离出主机ID,也就是通过将IP地址与子网掩码进行"与"逻辑操作,得出网络号。
例如,假设IP地址为192.160.4.1,子网掩码为255.255.255.0,则网络ID为192.160.4.0,主机ID为0.0.0.1。
计算机网络ID的不同,则说明他们不在同一个物理子网内,需通过路由器转发才能进行数据交换。
每类地址具有默认的子网掩码:对于A类为255.0.0.0,对于B类为255.255.0.0,对于C类为255.255.255.0。
除了使用上述的表示方法之外,还有使用于网掩码中"1"的位数来表示的,在默认情况下,A类地址为8位,B类地址为16位,C类地址为24位。
例如,A类的某个地址为 12.10.10.3/8,这里的最后一个"8"说明该地址的子网掩码为8位,而199.42.26.0/28表示网络199.42.26.0的子网掩码位数有28位。
如果希望在一个网络中建立子网,就要在这个默认的于网掩码中加入一些位,它减少了用于主机地址的位数。