好文档 - 专业文书写作范文服务资料分享网站

计算机网络课程设计ip地址的合法性及子网判断

天下 分享 时间: 加入收藏 我要投稿 点赞

工作效率。

为了解决这个问题,人们提出了子网(subnet)和超网(supernet)的概念。子网就是一个大的网络划分成几个较小的网络,而每一个小网络都是其自己的地址。超网就是将一个组织所属的几个C类网络合并成为一个更大地址范围的逻辑网络。

划分子网实际上就是在IP地址系统中增加一个层次。三级IP地址的表示方法为netID-subnet ID-host ID。第一级网络号定义了网点的位置;第二级子网号定义了物理子网;第三级主机号定义了主机和路由器到物理网络的连接。三级层次的IP地址,一个IP分组的路由器的过程分为三步:第一步将分组转发给网点,第二步转发给物理子网,第三步转发给确切的主机。

当三级层次的IP地址提出后,一个很显示的问题是:如何从一个IP地址提取出子网号。因此,提出了子网掩码(subnet mask)的概念。子网掩码有时也叫做子网掩码。

子网掩码表示方法:网络号与子网号置1,主机号置0。

如判断某一IP地址是否属于某一子网呢?只需将二进制IP地址与子网掩码按位进行“与”运算。若“与”运算所得值与给定子网地址一致,则说明该IP地址属于给定的子网。 四.课程设计过程

1、课程设计流程图:

程序开始,变量初始化 读取一个字符串 是否都是数 字字符 Y N return N段数=4? YY调用ipIsValid 函数 每段的值是否大于255 N 输出”ip地址非法” NipIsValid(subnet)是否为真 Y输出”子网非法” Mask是否在(0,32)范围内 YNIp&Mask==subnet YN 子网号与掩码不匹配 输出”掩码非法” 程序结束 五.程序运行结果

(1)在命令提示窗口中输入命令:ip_test 202.113.16.0/24 202.113.16.10 结果如下:

这个结果表示所输入的子网及ip地址是合法的 (2)判断ip地址无效

①在命令提示窗口中输入命令:ip_test 202.113.16.0/24 202.113.16.1% 结果如下:

该结果表示所输入ip地址无效,因为ip地址中有无效字符“%”。

②在命令提示窗口中输入命令:ip_test 202.113.16.0/24 202.113.16.10.10 结果如下:

由命令可以很明显的看出ip地址过长,说明该程序算法正确。 (3)判断掩码的有效性

①在命令提示窗口中输入命令:ip_test 202.113.16.0/2a 202.113.16.10 结果如下:

很显然,掩码中含有“a”,不合法。

②在命令提示窗口中输入命令:ip_test 202.113.16.0/33 202.113.16.10 结果如下:

因掩码不能长于32位,上提示掩码无效进一步说明该算法的正确性。 (4)判断ip地址是否属于该子网

①在(1)中是该ip地址属于该子网的情况

②在命令提示窗口中输入命令:ip_test 202.113.16.0/24 202.113.15.10,显然该ip地址不属于该子网。 结果如下:

该结果符合我们的预想。 (5)提示子网号全0或全1

①在命令提示窗口中输入命令:ip_test 0.0.0.0/24 202.113.16.10 结果如下:

②在命令提示窗口中输入命令:ip_test 255.255.255.0/24 202.113.15.10 结果如下:

(6)判断主机号全0或全1

①在命令提示窗口中输入命令:ip_test 202.113.16.0/24 202.113.16.0 结果如下:

②在命令提示窗口中输入命令:ip_test 202.113.16.0/24 202.113.16.255 结果如下:

以上现象充分说明该算法是完全正确的。

六、课程设计小结

为期两天的计算机网络课程设计就这样结束了,在整个设计过程中我们遇到了各种意想不到的问题,遍尝了各种滋味,既享受到成功的欢欣,有品尝到失败的懊恼,总之,充满了艰辛,一路上磕磕跘跘,甚是不易。

一开始,老师要我们选择课程设计题目,我们选择了 “IP地址的合法性及子网判断”这个题目!

但是,当我们大伙坐下来仔细分析题目时,发现这并没有我们当初想的那么简单,首先,在考虑IP地址(subnet子网地址原理相同)非法的情况时,我们就漏掉了几种情况。

最后,当我们输入命令行进行运行时,却发现不管我们输入的子网地址是否合法,运行结果都显示:subnet is invalid。我们分析了很久也找不到原因,无奈我们再一次寻求同学的帮助。他只是把整个程序大致浏览了一下就发现了错误,原来我们把char ip[15],char subnetPlusMask[18],char subnet[18],char TempIp[15]这几个变量设置成了私有变量,导致后面的程序不能访问。把代码按老师的指导修改后,调试,运行显示的结果准确无误,这才把课程设计的核心——编写源代码搞定。

平常我们都只顾对理论的学习,而没花时间进行实践,课程设计为我们提供了一个把理论知识进行实践的绝好机会,课程设计要求我们既动手有动脑,即要独立思考又要团队配合,锻炼我们的分析实际问题,解决实际问题的能力,提高我们适应实际,实践的能力。

一言以蔽之,我们既要强调对理论知识的学习,又要注重实践,在实践过程中加强对理论知识的理解,使实践与理论学习形成良性循环。

最后,真诚地感谢老师的指导。

七.参考文献

[1]张尧学,郭国强,王晓春,赵艳标。计算机网络与Internet教程[第2版]。清华大学出版社,2006,11。

[2]吴功宜,胡晓英,张仁,何云,王宁。计算机网络课程设计。机械工业出版社,2005,9。 八.附录:课程设计原代码

#include #include #include #include

计算机网络课程设计ip地址的合法性及子网判断

工作效率。为了解决这个问题,人们提出了子网(subnet)和超网(supernet)的概念。子网就是一个大的网络划分成几个较小的网络,而每一个小网络都是其自己的地址。超网就是将一个组织所属的几个C类网络合并成为一个更大地址范围的逻辑网络。划分子网实际上就是在IP地址系统中增加一个层次。三级IP地址的表示方法为netID-subnetID-hostID。第一
推荐度:
点击下载文档文档为doc格式
91291176xh797950lpza3sk4u09qt500fkv
领取福利

微信扫码领取福利

微信扫码分享