毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx

上传人:b****2 文档编号:14154155 上传时间:2022-10-19 格式:DOCX 页数:27 大小:220.18KB
下载 相关 举报
毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx_第1页
第1页 / 共27页
毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx_第2页
第2页 / 共27页
毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx_第3页
第3页 / 共27页
毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx_第4页
第4页 / 共27页
毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx

《毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx》由会员分享,可在线阅读,更多相关《毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx(27页珍藏版)》请在冰豆网上搜索。

毕设论文络网课程设计报告 ip地址的合法性及子网判断文档格式.docx

IP合法性和子网的判断

一、设计的目的和要求

1.目的

掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。

并判断该地址是否属于一个给定的子网。

判断IP地址属于ABC那类网。

2.要求

根据后面介绍的IP地址与子网划分的知识,编写程序判断IP地址的合法性及属于子网。

1)以命令行形式运行:

IPAddresssubnet_address/maskip_address

其中,IPAddress为程序名,subnet_address为子网地址,mask为掩码,ip_address为IP地址

2)判断IP地址属于ABC那类网。

3)判断subnet和ip_addr的合法性。

在判断IP地址合法性时要自行编写代码,不要使用任何inet 

函数。

判断时要考虑各种情况,全面分析问题。

4)判断掩码的合法性。

譬如说mask的值为负数或者大与32,这时输入的掩码就不合法。

5)在IP地址合法,掩码合法以及子网号也合法的前提下,判断ip_addr是否属于subnet。

6)输出命令行中的ip是否合法,掩码是否合法,子网号码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。

7)还可以判断子网号,主机号全0,全1问题。

中国计量学院现代科技学院课程设计报告P.2

二、设计任务

通过程序正确的实现对IP地址合理性的判断;

当给定一IP地址时,本程序能实现对其IP地址、子网地址、掩码的合法性做出正确的判断,以及能判断该IP地址是否属于子网,和IP地址属于ABC哪类网络

三、设计方案分析

(一)总体设计

1.分别输入子网号、掩码和IP地址。

2.分别判断子网号、掩码和IP地址的基本格式是否合法。

3.如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。

该函数同时判别子网号与掩码是否匹配,子网号为全0或全1,主机号为全0、全1.

4.如果三者的基本格式都合法,判断IP地址属于ABC哪类网

中国计量学院现代科技学院课程设计报告P.3

(程序流程图-1)

中国计量学院现代科技学院课程设计报告P.4

(二)模块设计

(模块流程图-2)

四、调试与运行

(一)调试中遇到的问题和解决办法

1.输入命令行进行运行时,却发现不管我们输入的子网地址是否合法,运行结果都显示:

subnet 

is 

invalid。

我们分析了很久也找不到原因,无奈我们再一次寻求同学的帮助。

他只是把整个程序大致浏览了一下就发现了错误,原来我们把char 

ip[15],char 

subnetPlusMask[18],char 

subnet[18],char 

TempIp[15]这几个变量设置成了私有变量,导致后面的程序不能访问。

2.输入192.168.1.0/24192.168.1.55显示出现不属于该子网,这是错误的。

然后在(iSubA&

iMask)中发现了问题所在。

3.出现很多的地方少了},然后经过我详细的查找得以解决。

4.发现很多词语没有定义,然后经过查找发现定义类时,单词打错了。

中国计量学院现代科技学院课程设计报告P.5

(二)运行说明

程序编译成功后,打开cmd,然后打入cdd:

/kcsj/debug(程序生成的Debug文件路径下),再进行打入TestIP(程序文件名)192.168.1.0/24192.168.1.55(IPAddresssubnet_address/maskip_address),然后会出现运行结果,查看IP地址IP地址、子网地址、掩码的合法性,以及能判断该IP地址是否属于子网,和IP地址属于ABC那类网络。

(三)运行效果展示

(1)在命令提示窗口中输入命令:

TestIP192.1/33198.1.1;

TestIP256.1.1.0/24256.1.1.55

详细的判断IP地址、子网地址、掩码的合法性

中国计量学院现代科技学院课程设计报告P.6

(2)在命令提示窗口中输入命令:

TestIP19.16.1.0/2419.16.1.55

IP地址属于该子网,并且IP地址属于A类网

(3)在命令提示窗口中输入命令:

TestIP192.16.1.0/24168.125.168.192

IP地址不属于该子网,并且IP地址属于B类网

中国计量学院现代科技学院课程设计报告P.7

(4)在命令提示窗口中输入命令:

TestIP192.168.1.0/24192.168.2.55

IP地址不属于该子网,并且IP地址属于C类网

(5)在命令提示窗口中输入命令:

TestIP192.168.1.0/24192.168.1.55

IP地址属于该子网,并且IP地址属于C类网

中国计量学院现代科技学院课程设计报告P.8

五、设计体会与建议

这次课程设计,我收获了很多东西。

通过上网和到图书馆查阅资料,我更加深入的学习了C语言,并利用所学知识设计,充分锻炼,增强了我的程序设计能力,使我加深了对理论知识的理解和掌握。

充分体会到了理论固然重要,如果没有实践去验证,那也只是停在理论层面上,它的现实意义将无法得到体现。

所以,这次课程设计是理论与实践的结合,增强了我在这方面的能力。

通过这次课程设计,我更加深刻的理解了IP地址的合法性,IP地址与子网的从属关系,子网与子网掩码的关系。

在判断IP地址是否属于一个子网时,我对IP地址的分类以及子网划分有了更加深刻的理解。

在这次课程设计的过程中,我遇到了很多问题,但经过老师和同学的帮助,我解决了这些问题,并学到了很多知识,在此,对老师和同学表示真挚的感谢。

参考文献

[1]魏权龄.数据包络分析(DEA)[J].科学通报,2000,45(17):

1793-1808.

[2]张尧学,郭国强,王晓春,赵艳标。

计算机网络与Internet教程[第2版]。

清华大学出版社,2006,11。

[3]谢希仁,计算机网络(第5版),电子工业出版社,2008-01

[4]谢希仁,计算机网络释疑与习题解答,电子工业出版社,2011-04

[5]谭浩强,C++程序设计,清华大学出版社,2004-06

中国计量学院现代科技学院课程设计报告P.9

源代码

#include<

iostream>

stdlib.h>

stdio.h>

string.h>

math.h>

ctype.h>

usingnamespacestd;

//ipTest类定义

classipTest{

charip[15];

//用于存放ip地址

charip_Temp[15];

charsubnet_mask[18];

//用于存放subnet_mask地址

charsubnet[18];

//用于存放subnet地址

charsubnet_Temp[18];

intmask;

//用于存放mask(1的个数)

boolmaskIsValid;

//用于判断的个数是否合适,或是否与subnet匹配

public:

ipTest(char*,char*);

//自定义初始化类函数

~ipTest(){};

//析构函数

boolipIsValid(char*);

//判断ip是否合法

boolsubnetIsValid(char*);

//判断子网号subnet是否合法

boolNoIllegalChar(char*);

//ip,subnet地址中非法字符的判断

boolmaskIsMatSubnet(int,char*);

//判断mask与subnet是否匹配

voidAllJudgment();

//判断mask,subnet,ip的合法性问题

voidprint();

//判断ip是否为子网成员,并输出判断结果

voidsplit(char*,int*);

//把单个字符地址转换为十进制数值型地址(含四段)

inttoBinary(inta);

//十进制int型数据转换为二进制int型数据

char*toString(int*a);

//把二进制int型数据转换为一个整体的二进制字符型数据

};

//main主函数

intmain(intargc,char*argv[])//自动读取数据

{

//cout<

<

"

目录地址:

argv[0]<

endl;

//argv[0]表示ipTest.exe的保存目录地址

中国计量学院现代科技学院课程设计报告P.10

cout<

subnet_mask:

"

argv[1]<

//argv[1]表示第二个参数,即subnet/mask

cout<

ip地址:

argv[2]<

endl<

//argv[2]表示第三个参数,即ip

//判断段数是否输入合法

if(argc!

=3)//argc表示输入的参数个数,无参数输入时,其值为,因为默认argv[0]总是有的

{

cout<

输入非法!

;

return0;

}

else

//先简单判断subnet/mask的长度

if(strlen(argv[1])>

18)

{

cout<

subnet/mask输入非法!

system("

pause"

);

return0;

}

//先简单判断ip的长度

if(strlen(argv[2])>

15)

ip输入非法!

ipTesttest(argv[1],argv[2]);

//实例化类,传入两个参数

test.AllJudgment();

//调用函数,判断mask,subnet,ip的合法性问题

system("

//系统暂停

return0;

}

//构造函数

中国计量学院现代科技学院课程设计报告P.11

ipTest:

:

ipTest(char*subnet_mask,char*ip)

maskIsValid=true;

//设置maskIsValid默认为合法

chartemp[2];

//定义变量

inti,len;

len=strlen(subnet_mask);

/*******************从subnet/mask中分离出subnet地址***************/

for(i=0;

i<

len&

&

subnet_mask[i]!

=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1