欢迎来到天天文库
浏览记录
ID:33675570
大小:187.30 KB
页数:12页
时间:2019-02-27
《编程判断ip地址的合法性》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、XXXXXX大学XXXXXXX学院计算机网络与通信实习报告设计题目编程判断IP地址的合法性学生专业班级学生姓名(学号)指导教师完成时间2010-5-22实习(设计)地点信息楼139、1122010年5月22日12一.实习题目编写一个判断IP地址是否合法的计算机程序,如果合法,给出其子网号。二.原理概述在计算机网络中,主要分为三类IP地址,即A类,B类,C类地址,每一类地址都有其特点和寻址原则。每个IP地址均有32位,8个为一段,共四个字节。每段范围在0~255,超出这个范围就是错误的。子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还
2、是在远程网上。子网掩码的计算根据其具体算法来计算。1.三类地址的特点:1.1A类IP地址0网络号(7位)主机号(24位)一个A类IP地址是指,在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。1.2B类IP地址10网络号(14位)主机号(16位)一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码,B类IP地址就由
3、2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为14位,主机标识的长度为16位,B类网络地址适用于中等规模规模的网络,每个网络所能容纳的计算机数为6万多台。1.3C类IP地址110网络号(21位)主机号(8位)一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为21位,主机标识的长度为8位,C类网络地址数量较多,适用于小规模的局域网络,每个网络最
4、多只能包含254台计算机。2.IP的寻址规则:2.1网络寻址规则网络地址必须唯一。网络标识不能以数字127开头。在A类地址中,数字127保留给内部回送函数。网络标识的第一个字节不能为255。数字255作为广播地址。网络标识的第一个字节不能为“0”,“0”表示该地址是本地主机,不能传送。122.2主机寻址规则主机标识在同一网络内必须是唯一的。主机标识的各个位不能都为“1”,如果所有位都为“1”,则该机地址是广播地址,而非主机的地址。主机标识的各个位不能都为“0”,如果各个位都为“0”,则表示“只有这个网络”,而这个网络上没有任何主机。3.IP子网掩码概述3.1子网掩码的概念子网掩码是一个32位
5、地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。3.2确定子网掩码数用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。定义子网掩码的步骤为:①确定哪些组地址归我们使用。比如我们申请到的网络号为“210.73.a.b”,该网络地址为c类IP地址,网络标识为“210.73”,主机标识为“a.b”。②根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们现在需要12个子网,将来可能需要16个。用第三个字节的前四位确定子网掩码。前四位都置为“1
6、”,即第三个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。③把对应初始网络的各个位都置为“1”,即前两个字节都置为“1”,第四个字节都置为“0”,则子网掩码的间断二进制形式为:“11111111.11111111.11110000.00000000”④把这个数转化为间断十进制形式为:“255.255.240.0”三.设计方案1.实验开发环境MicrosoftVisualC++6.0来实现这个系统。2.系统分析及函数说明为了避免使系统使用过多重复的代码以及增加程序的可读性我们可以定义一个类结构ipTest;输入的字符串需要判断是否是只是数字而不是其他的不合法字符我们就需要定
7、义一个NoIllegalChar()来判断其输入的串是否是字符;要判断IP地址及子网号是否合法我们就需要设计一个函数来判断IP地址及子网号是否正确的函数我们设函数分别为ipIsValid()和subnetIsValid();判断Ip是否属于该子网号我们用函数belong();最后我们需要输出结果我们就使用print()来实现又好的输出。其详细的函数及功能如下:12NoIllegalChar(char*):判断
此文档下载收益归作者所有