欢迎来到天天文库
浏览记录
ID:59434714
大小:530.50 KB
页数:21页
时间:2020-05-21
《IP地址合法性判断及子网检测_实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一.实验目的1.加深对IP地址及subnet的认识;2.了解IP地址的划分;3.了解subnet的作用和产生因素,subnet的划分;4.实际操作编写规则,匹配IP和subnet,加深理解二.实验环境(软件、硬件及条件)1.软件操作系统:Windows7(WindowsNT以上版本皆可)编程环境:MicrosoftVisualStudio2008(兼容MSVS2005,亦可使用VC6.0等)编程语言:C++测试环境:MS-DOS2.硬件现阶段常见PC三.实验方法Part1实验原理我们说过因特网是把全世界的无数个网络连接起来的一个庞大的网间网,每个网络中的计算
2、机通过其自身的IP地址而被唯一标识的,据此我们也可以设想,在Internet上这个庞大的网间网中,每个网络也有自己的标识符。我们把计算机的IP地址也分成两部分,分别为网络标识和主机标识。同一个物理网络上的所有主机都用同一个网络标识,网络上的一个主机(包括网络上工作站、服务器和路由器等)都有一个主机标识与其对应IP地址的4个字节划分为2个部分,一部分用以标明具体的网络段,即网络标识;另一部分用以标明具体的节点,即主机标识,也就是说某个网络中的特定的计算机号码。另一方面,只有在一个网络号下的计算机之间才能"直接"互通,不同网络号的计算机要通过网关(Gateway
3、)才能互通。但这样的划分在某些情况下显得并十分不灵活。为此IP网络还允许划分成更小的网络,称为子网(Subnet),这样就产生了子网掩码1.IP的寻址规则(1).网络寻址规则A、网络地址必须唯一。B、网络标识不能以数字127开头。在A类地址中,数字127保留给内部回送函数。C、网络标识的第一个字节不能为255。数字255作为广播地址。D、网络标识的第一个字节不能为“0”,“0”表示该地址是本地主机,不能传送。2.主机寻址规则A、主机标识在同一网络内必须是唯一的。B、主机标识的各个位不能都为“1”,如果所有位都为“1”,则该机地址是广播地址,而非主机的地址。C
4、、主机标识的各个位不能都为“0”,如果各个位都为“0”,则表示“只有这个网络”,而这个网络上没有任何主机。3.确定子网掩码数用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。定义子网掩码的步骤为:A、确定哪些组地址归我们使用。比如我们申请到的网络号为“128.73.a.b”,该网络地址为B类IP地址,网络标识为“128.73”,主机标识为“a.b”。B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们现在需要12个子网,将来可能需要16个。用第三个字
5、节的前四位确定子网掩码。前四位都置为“1”,即第三个字节为“”,这个数我们暂且称作新的二进制子网掩码。C、把对应初始网络的各个位都置为“1”,即前两个字节都置为“1”,第四个字节都置为“0”,则子网掩码的间断二进制形式为:“...”D、把这个数转化为间断十进制形式为:“255.255.240.0”这个数为该网络的子网掩码。4.IP掩码的标注A、无子网的标注法对无子网的IP地址,可写成主机号为0的掩码。如IP地址210.73.140.5,掩码为255.255.255.0,也可以缺省掩码,只写IP地址。B、有子网的标注法有子网时,一定要二者配对出现。以C类地址为
6、例。IP地址中的前3个字节表示网络号,后一个字节既表明子网号,又说明主机号,还说明两个IP地址是否属于一个网段。如果属于同一网络区间,这两个地址间的信息交换就不通过路由器。如果不属同一网络区间,也就是子网号不同,两个地址的信息交换就要通过路由器进行。例如:假设maskwe为27,对于IP地址为210.73.140.5的主机来说,其主机标识为,对于IP地址为210.73.140.16的主机来说它的主机标识为,以上两个主机标识的前面三位全是000,说明这两个IP地址在同一个网络区域中,这两台主机在交换信息时不需要通过路由器进行;210.73.60.1的主机标识为
7、,210.73.60.252的主机标识为,这两个主机标识的前面三位000与011不同,说明二者在不同的网络区域,要交换信息需要通过路由器。其子网上主机号各为1和252。Part2具体实现通过以上的原理,我们就知道了在检验IP地址和子网检验时应该明确的问题,关键的两点就是把输入的IP(暂且不讨论何种输入形式,且假设为合法输入)分解成各段,然后判断其书否属于另一IP的网络,其中的算法在上面已经说明1.实现流程制定规则设计数据结构算法实现调试测试数据分析2.编程本部分的编程的主要目的是算法的实现,主要的方法是C++中字符串处理。(1)类设计a.属性charip[1
8、5];//用于存放ip地址charip_Temp[1
此文档下载收益归作者所有