免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计任务书学 院信息科学与工程学院专 业计算机科学与技术学 生 姓 名 学 号设 计 题 目IP地址合法性判断及子网判断内容及要求:判断IP和子网是否合法,接着将IP地址一位位与子网掩码做与运算,看结果是否和子网相等来判断IP地址是否属于某一个网络。 设计总要求:实现判断输出命令行中的IP是否合法,掩码是否合法以及ip_addr是否是属于子网subnet。将IP地址一位位与子网掩码做与运算,看结果是否和子网相等来判断IP地址是否属于某一个网络。在这个设计中考虑到了以上的种种情况,根据用户输入的IP地址,掩码和子网,程序可以判断输入的IP地址,掩码和子网是否正确以及ip_addr是否是属于子网subnet。在判断不合法IP时要考虑全面,比如以下情况均属于不合法 连续两个 . 12321.2 含有非法字符 12323$21 每部分长度超过3 123234521 含有超过三个的. 123234521 每部分大于255 256.123.3.3进度安排:第1周:布置课程设计任务;查阅资料;分组进行程序设计。第2周:程序设计和调试;程序验收;答辩;上交课程设计报告。指导教师(签字):2011 年 7 月 4日学院院长(签字):年 月 日目录一 课程设计目的和意义311设计目的.312设计的意义3二 协议的内容说明,关键技术的说明421 ip地址简介422 子网掩码简介523 ip地址的计算624 子网划分简介731主程序设计.832验证ip地址合法性9 33验证ip是否属于某个子网.93.4代码10四 程序的运行和调试结果19运行结果19五 课程设计小结21六 参考文献21一 课程设计目的和意义11设计目的1加深对IP地址及subnet的认识;2了解IP地址的划分;3. 了解subnet的作用和产生因素,subnet的划分;4. 实际操作编写规则,匹配IP和subnet,加深理解12设计的意义1、有利于基础知识的理解通过计算机网络的学习,学生掌握了一些信息时代生存与发展必需的信息技术基础知识和基本技能,具备了在日常生活与学习中应用信息技术解决问题的基本态度与基本能力。但是,学生对于程序、病毒的内涵,程序与文档、数据的区别,计算机运行的机理等知识内容的理解比较肤浅。学生如果接触了程度设计,就能真正理解,从而进一步打破计算机的神秘感。2、有利于逻辑思维的锻炼程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。3、有利于与其他学科的整合在程序设计中,我们可以解决其它学科有关问题,也利用其它课程的有关知识来解决信息技术中比较抽象很难理解的知识。在信息技术课中整合其它学科的知识,发挥信息技术的优势。4、有利于治学态度的培养。程序设计中,语句的语法和常量变量的定义都有严格的要求,有时输了一个中文标点、打错了一个字母,编译就不通过,程序无法正常运行。因此,程序设计初学阶段,学生经常会犯这样的错误,可能要通过几次乃至十多次的反复修改、调试,才能成功,但这种现象会随着学习的深入而慢慢改观。这当中就有一个严谨治学、一丝不苟的科学精神的培养,又有一个不怕失败、百折不挠品格的锻炼。二 协议的内容说明,关键技术的说明21 ip地址简介所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。 按照TCP/IP(Transport Control Protocol/Internet Protocol,传输控制协议/Internet协议)协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。为了方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“”分开不同的字节。于是,上面的IP地址可以表示为“10001”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆得多。 有人会以为,一台计算机只能有一个IP地址,这种观点是错误的。我们可以指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP地址就是一台计算机;另外,通过特定的技术,也可以使多台服务器共用一个IP地址,这些服务器在用户看起来就像一台主机似的。 将IP地址分成了网络号和主机号两部分,设计者就必须决定每部分包含多少位。网络号的位数直接决定了可以分配的网络数(计算方法2网络号位数);主机号的位数则决定了网络中最大的主机数(计算方法2主机号位数-2)。然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案:将IP地址空间划分成不同的类别,每一类具有不同的网络号位数和主机号位数。1A类IP地址 一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围1001-126255255254(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110)。可用的A类网络有126个,每个网络能容纳1600多万个主机。 2B类IP地址 一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围128101-191254255254(二进制表示为:10000000 00000001 00000000 00000001 - 10111111 11111110 11111111 11111110)。可用的B类网络有16382个,每个网络能容纳6万多个主机 。 3C类IP地址 一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围192011-223255255254(二进制表示为: 11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110)。C类网络可达209万余个,每个网络能容纳254个主机。 4D类地址用于多点广播(Multicast)。 D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。 地址范围224001-2392552552545E类IP地址 以“11110”开始,为将来使用保留。 E类地址保留,仅作实验和开发用。全零(“0000”)地址指任意网络。全“1”的IP地址(“255255255255”)是当前子网的广播地址。22 子网掩码简介通过 IP 地址的二进制与子网掩码的二进制进行与运算进行定某个设备的网络地址, 也就是说通过子网掩码分辨一个网络的网络部分和主机部分子网掩码一旦设置,网络地址和主机地址就固定了。相对于使用子网掩码来识别网络地址,早期的使用类别进行网络地址的分类存在着地址大量浪费的不足。子网一个最显著的特征就是具有子网掩码。与IP地址相同,子网掩码的长度也是32位,也可以使用十进制的形式。例如,为二进制形式的子网掩码:11111111111111111111111100000000,采用十进制的形式为:255.255.255.0。 用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。 23 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” 这个数为该网络的子网掩码。 子网掩码一共分为两类。一类是缺省子网掩码,一类是自定义子网掩码。缺省子网掩码即未划分子网,对应的网络号的位12都置1,主机号都置0。A类网络缺省子网掩码:255.0.0.0B类网络缺省子网掩码:255.255.0.0C类网络缺省子网掩码:255.255.255.0自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上我们可以认为是将主机号分为两个部分:子网号、子网主机号。 形式如下:未做子网划分的ip地址:网络号主机号做子网划分后的ip地址:网络号子网号子网主机号也就是说ip地址在化分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。子网掩码是32位二进制数,它的子网主机标误用部分为全“0”。利用子网掩码可以判断两台主机是否中同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。24 子网划分简介 子网的划分,实际上就是设计子网掩码的过程。子网掩码主要是用来区分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位。如果希望在一个网络中建立子网,就要在这个默认的于网掩码中加入一些位,它减少了用于主机地址的位数。加入到掩码中的位数决定了可以配置的于网。因而,在一个划分了子网的网络中,每个地址包含一个网络地址、一个子网位数和一个主机地址, 三 程序设计方法、流程图和主要代码31主程序设计3.1.1设计方法:实现判断输出命令行中的ip是否合法,掩码是否合法以及ip_addr是否是属于子网subnet。将IP地址一位位与子网掩码做与运算,看结果是否和子网相等来判断IP地址是否属于某一个网络。在这个设计中考虑到了以上的种种情况,根据用户输入的IP地址,掩码和子网,程序可以判断输入的IP地址,掩码和子网是否正确以及ip_addr是否是属于子网subnet。3.1.2主程序流程图YNYYYNNN开始IP是否合法Ip地址是否属于子网结束子网是否合法掩码是否合法图1IP地址合法性判断及子网判断主流程图32验证ip地址合法性3.2.1设计方法:首先检查IP地址的合法性。在判断不合法IP时要考虑全面,比如以下情况均属于不合法连续两个 . 12321.2含有非法字符 12323$21每部分长度超过3 123234521含有超过三个的. 12323452132.2验证IP地址合法性流程图YN开始结束判断是否合法输入IP地址图2验证ip地址合法性流程图33验证ip是否属于某个子网3.3.1设计方法:输入IP地址,子网掩码和子网地址接着拆分IP地址与子网掩码拆分IP地址和子网掩码进行与运算,结果与子网比较得出是否是一个网络的结论33.2验证IP是否属于某个子网流程图IP和掩码与运算YN开始结束结果与子网比较拆分IP地址与子网掩码拆分ip地址和子网掩码进行与运算输入ip地址,子网掩码和子网地址图3验证ip是否属于某个子网流程图3.4代码#include#include#include#includeusing namespace std;int a4=0,0,0,0; /分段存放子网char Ip_addr15; /ip地址char sub_net15; /子网int ip4=0,0,0,0;int subnet4=0,0,0,0; /分段存放ip地址int address4=0,0,0,0;int num; /子网掩码int toBinary(int a)/将十进制数转换为二进制数 if(a/2=0) return a%2; return a%2+toBinary(a/2)*10;/判断IP是否合法void aa(char c15) /判断IP地址不能超过15 if(strlen(c)15) coutendlIP地址总长度不能超过15!endl; return; int dotnum=0; /判断IP地址中是否存在非法字符 for(int i=0;istrlen(c);i+) if(isdigit(ci)=0 & ci!=.) coutendlIP地址中含有非法字符!endl; return ; if(ci=.) dotnum+; /判断IP地址中只能存在3个分隔符 if(dotnum!=3) coutendlIP地址中分隔符只能为3个!endl; return; /判断IP地址中是否存在连续分隔符 for(i=0;istrlen(c)-1;i+) if(ci=. & ci+1=.) coutendlIP地址中出现连续的分隔符!endl; return; /分割IP地址void bb(char c15) /判断IP地址中最后不能为分隔符 for(int m=0;m4;m+) ipm=0; int len; len=strlen(c); if(clen-1=.) coutendlIP地址最后们不能为分隔符!endl; return; char temp415; for(int i=0;i4;i+) for(int j=0;j15;j+) tempij=0; int j=0; i=0; for(int k=0;kstrlen(c);k+) if(ck!=.) tempij=ck; j+; else i+; j=0; for(i=0;i3) coutendlIP地址每位长度不能超过3!endl; return; switch(len) case 3: while(len!=0) ipi+=(tempilen-1-48)*pow(10,3-len); len-; break; case 2: while(len!=0) ipi+=(tempilen-1-48)*pow(10,2-len); len-; break; default: while(len!=0) ipi+=(tempilen-1-48)*pow(10,1-len); len-; long int num=0; for(i=0;i255) coutendlIP地址数字不能超过255!endl; return; /分割网络地址void ee(char c15) /判断网络地址中最后不能为分隔符 for(int m=0;m4;m+) subnetm=0; int len; len=strlen(c); if(clen-1=.) coutendl子网号最后们不能为分隔符!endl; return; char temp415; for(int i=0;i4;i+) for(int j=0;j15;j+) tempij=0; int j=0; i=0; for(int k=0;kstrlen(c);k+) if(ck!=.) tempij=ck; j+; else i+; j=0; for(i=0;i3) coutendl子网号每位长度不能超过3!endl; return; switch(len) case 3: while(len!=0) subneti+=(tempilen-1-48)*pow(10,3-len); len-; break; case 2: while(len!=0) subneti+=(tempilen-1-48)*pow(10,2-len); len-; break; default: while(len!=0) subneti+=(tempilen-1-48)*pow(10,1-len); len-; long int num=0; for(i=0;i255) coutendl子网号数字长度不能超过255!endl; return; /生成子网掩码void cc() cout子网掩码为:; int r32; for(int i=0;inum;i+) ri=1; for(int j=0;j32-num;j+) ri+=0; int p=0; int w8; int k=0; for(int m=0;m4;m+) int sum=0; for (int n=0;n8;n+) wp=rk; sum=sum+wp*pow(2,7-n); p+; k+; p=0; am=sum; for(int n=0;n4;n+) coutan; if(n!=3) cout.; coutendl;/判断是否和子网相等void dd() string s=; for(int i=0;i4;i+) if(ai&ipi)=subneti) s=s+a; cout由IP和子网掩码得到的网络地址:; for(i=0;i4;i+) int w1=toBinary(ai); int w2=toBinary(ipi); coutw1&w2; coutend
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年员工帮助计划供应商选择评估
- 2026年旅游意外险紧急救援服务与医疗保障解析
- 老年人生活质量提升:养老护理员服务创新
- 诚信教育主题班会教案设计-1
- (2026年)出租客运用户体验与服务质量提升培训课件
- 宝安区2025广东深圳市宝安区航城街道办事处选聘事业单位工作人员1人笔试历年参考题库典型考点附带答案详解
- 大兴区2025北京市大兴区政务服务管理局临时辅助用工人员招聘2人笔试历年参考题库典型考点附带答案详解
- 公路钢箱梁施工质量通病、原因分析及防治措施
- 四川省2025年广汉市人力资源和社会保障局广汉市国有资产监督管理和金融工作局笔试历年参考题库典型考点附带答案详解
- 呼伦贝尔市2025内蒙古呼伦贝尔市生态环境系统所属事业单位引进人才笔试历年参考题库典型考点附带答案详解
- 2024-2029全球及中国超精密机床行业市场发展分析及前景趋势与投资发展研究报告
- 冲压设备的维护与保养
- 消防职业道德教育课件
- 数学史全套课件
- 2021市政工程资料表格填写范例样本
- 高空作业专项施工方案
- 成都建筑装饰装修工程设计收费标准
- GB/T 6117.1-1996立铣刀第1部分:直柄立铣刀的型式和尺寸
- GB/T 16301-2008船舶机舱辅机振动烈度的测量和评价
- GB/T 1185-2006光学零件表面疵病
- 商务星球版七年级下册地理知识点归纳
评论
0/150
提交评论