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

IP地址的合法性及子网判断

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

程序开始,变量初始化 读取一个字符串 是否都是数 字字符 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

#include #include #include #include #include #include

#pragma comment(lib,\//类结构 class ipTest{ public:

char ip[15];

char subnetPlusMask[18]; char subnet[18]; char TempIp[15];

l maskIsValid;

int mask; char Tempsub[18];

ipTest(char *,char *); } ; //主函数

void main(int argc,char * argv[]){

if(argc!=3){ //判断参数格式化是否正确

cout<<\~ipTest(){};

bool NoIllegalChar(char *); //非法字符的判断 bool ipIsValid(char *); //判断IP地址是否合法 bool subnetIsValid(char *); //判断子网号是否合法 void belong(); //判断IP是否为子网成员 print();

IP地址的合法性及子网判断

程序开始,变量初始化读取一个字符串是否都是数字字符YNreturnN段数=4?YY调用ipIsValid函数每段的值是否大于255N输出”ip地址非法”NipIsValid(subnet)是否为真Y输出”子网非法”Mask是否在(0,32)范围内YNIp&Mask==subnetYN子网号与掩码不匹配
推荐度:
点击下载文档文档为doc格式
2ytkd2gizm0zdc523xwm17c19373fh00go2
领取福利

微信扫码领取福利

微信扫码分享