ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:196.98KB ,
资源ID:1615528      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1615528.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(精品网络毕业论文报告IP地址的合法性及子网判断.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

精品网络毕业论文报告IP地址的合法性及子网判断.docx

1、精品网络毕业论文报告IP地址的合法性及子网判断中国计量学院现代科技学院课程设计报告本课程设计名称 IP地址的合法性及子网判断 系 (部) 信息系 学 号 专 业 计算机 姓 名 班 级 101 指导教师 虞戟 2013 年 7 月 5 日课 程 设 计 报 告 目 录一、设计的目的和要求 11.目的 1二、设计任务 2三、设计方案分析 2(一)总体设计 2(二)模块设计 4四、调试与运行 4(一) 调试中遇到的问题和解决办法 4(二) 运行说明 5(三) 运行效果展示 5五、设计体会与建议 8附录一:参考文献 8附录二:源代码 9附 件:中国计量学院现代科技学院课程设计报告 P.1IP合法性和

2、子网的判断一、设计的目的和要求1.目的掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。并判断该地址是否属于一个给定的子网。判断IP地址属于A B C那类网。2.要求根据后面介绍的IP地址与子网划分的知识,编写程序判断IP地址的合法性及属于子网。1)以命令行形式运行: IPAddress subnet_addressmask ip_address其中,IPAddress为程序名,subnet_address为子网地址,mask为掩码,ip_address为IP地址2)判断IP地址属于A B C那类网。3)判断subnet和ip_addr的合法性。在判断IP地址合法性时

3、要自行编写代码,不要使用任何inet函数。判断时要考虑各种情况,全面分析问题。4)判断掩码的合法性。譬如说mask的值为负数或者大与32,这时输入的掩码就不合法。 5)在IP地址合法,掩码合法以及子网号也合法的前提下,判断ip_addr是否属于subnet。6)输出命令行中的ip是否合法,掩码是否合法,子网号码是否合法(可适当给出不合法的原因)以及ip_addr是否属于子网subnet。7)还可以判断子网号,主机号全0,全1问题。中国计量学院现代科技学院课程设计报告 P.2二、设计任务通过程序正确的实现对IP地址合理性的判断;当给定一IP地址时,本程序能实现对其IP地址、子网地址、掩码的合法性

4、做出正确的判断,以及能判断该IP地址是否属于子网,和IP地址属于A B C哪类网络 三、设计方案分析(一)总体设计1.分别输入子网号、掩码和IP地址。2.分别判断子网号、掩码和IP地址的基本格式是否合法。3.如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。该函数同时判别子网号与掩码是否匹配,子网号为全0或全1,主机号为全0、全1.4.如果三者的基本格式都合法,判断IP地址属于A B C哪类网 中国计量学院现代科技学院课程设计报告 P.3 (程序流程图-1)中国计量学院现代科技学院课程设计报告 P.4(二)模块设计(模块流程图-2)四、调试与运行(一) 调试中遇到的问题和解

5、决办法1.输入命令行进行运行时,却发现不管我们输入的子网地址是否合法,运行结果都显示:subnetisinvalid。我们分析了很久也找不到原因,无奈我们再一次寻求同学的帮助。他只是把整个程序大致浏览了一下就发现了错误,原来我们把charip15,charsubnetPlusMask18,charsubnet18,charTempIp15这几个变量设置成了私有变量,导致后面的程序不能访问。2.输入192.168.1.024 192.168.1.55 显示出现不属于该子网,这是错误的。然后在(iSubA&iMask)中发现了问题所在。3.出现很多的地方少了,然后经过我详细的查找得以解决。4.发现

6、很多词语没有定义,然后经过查找发现定义类时,单词打错了。中国计量学院现代科技学院课程设计报告 P.5(二) 运行说明程序编译成功后,打开cmd,然后打入cd d:kcsjdebug(程序生成的Debug文件路径下),再进行打入 TestIP(程序文件名)192.168.1.024 192.168.1.55(IPAddresssubnet_addressmask ip_address) ,然后会出现运行结果,查看IP地址IP地址、子网地址、掩码的合法性,以及能判断该IP地址是否属于子网,和IP地址属于A B C那类网络。(三) 运行效果展示(1)在命令提示窗口中输入命令:TestIP 192.1

7、33 198.1.1;TestIP 256.1.1.024 256.1.1.55详细的判断IP地址、子网地址、掩码的合法性中国计量学院现代科技学院课程设计报告 P.6(2)在命令提示窗口中输入命令:TestIP 19.16.1.024 19.16.1.55IP地址属于该子网,并且IP地址属于A类网(3)在命令提示窗口中输入命令:TestIP 192.16.1.024 168.125.168.192IP地址不属于该子网,并且IP地址属于B类网中国计量学院现代科技学院课程设计报告 P.7(4)在命令提示窗口中输入命令:TestIP 192.168.1.024 192.168.2.55IP地址不属于

8、该子网,并且IP地址属于C类网(5)在命令提示窗口中输入命令:TestIP 192.168.1.024 192.168.1.55IP地址属于该子网,并且IP地址属于C类网中国计量学院现代科技学院课程设计报告 P.8五、设计体会与建议这次课程设计,我收获了很多东西。通过上网和到图书馆查阅资料,我更加深入的学习了C语言,并利用所学知识设计,充分锻炼,增强了我的程序设计能力,使我加深了对理论知识的理解和掌握。充分体会到了理论固然重要,如果没有实践去验证,那也只是停在理论层面上,它的现实意义将无法得到体现。所以,这次课程设计是理论与实践的结合,增强了我在这方面的能力。通过这次课程设计,我更加深刻的理解

9、了IP地址的合法性,IP地址与子网的从属关系,子网与子网掩码的关系。在判断IP地址是否属于一个子网时,我对IP地址的分类以及子网划分有了更加深刻的理解。在这次课程设计的过程中,我遇到了很多问题,但经过老师和同学的帮助,我解决了这些问题,并学到了很多知识,在此,对老师和同学表示真挚的感谢。附录一:参考文献 2 张尧学,郭国强,王晓春,赵艳标。计算机网络与Internet教程第2版。清华大学出版社,2006,11。中国计量学院现代科技学院课程设计报告 P.9附录二:源代码#include #include stdlib.(int argc,char *argv) 自动读取数据 cout目录地址:a

10、rgv0endl; argv0表示ipTest.exe的保存目录地址 中国计量学院现代科技学院课程设计报告 P.10coutsubnet_mask : argv1endl; argv1表示第二个参数,即subnetmask coutip地址: argv2endlendl;argv2表示第三个参数,即ip 判断段数是否输入合法 if(argc!=3) argc表示输入的参数个数,无参数输入时,其值为,因为默认argv0总是有的 cout18) cout15) coutip 输入非法!; system(pause); return 0; ipTest test(argv1,argv2); 实例化类

11、,传入两个参数 test.AllJudgment();调用函数,判断mask,subnet,ip的合法性问题 system(pause);系统暂停 return 0; 构造函数中国计量学院现代科技学院课程设计报告 P.11ipTest:ipTest(char *subnet_mask,char *ip) maskIsValid=true; 设置maskIsValid默认为合法 char temp2;定义变量 int i,len; len=strlen(subnet_mask); *从subnetmask中分离出subnet地址* for(i=0;isubneti=subnet_maski; t

12、his-subnet_Tempi=subnet_maski; subnet_Tempi=0; subneti=0; *判断mask是否为数值* if(len-(i+1)0) 判断mask是否为一二位字节 if(len-(i+1)=1) 表明mask是一位 temp0=subnet_maski+1; 判断字符是否为数值型字符 if(!isdigit(temp0) isdigit()为库函数,可以调用 coutmask中含有非数字的非法字符,error!endl; maskIsValid=false; mask不是数值,则设置为false else if(len-3)=i) 表明mask是二位 t

13、emp0=subnet_maski+1; temp1=subnet_maski+2; if(!(isdigit(temp0) & isdigit(temp1) coutmask中含有非数字的非法字符,error!endl; 中国计量学院现代科技学院课程设计报告 P.12 maskIsValid=false; mask=atoi(temp); 自动把数字字符转换为对应的十进制数值的函数 if(mask32) maskIsValid=false; else 表明mask为空或字节超出范围 coutmask为空或超出范围,error!subnet_mask,subnet_mask); 给subnet

14、_mask赋值 strcpy(this-ip,ip); 给ip赋值 strcpy(this-ip_Temp,ip); 给ip_temp赋值判断mask,subnet,ip的合法性问题void ipTest:AllJudgment() 设置标志subnet地址是否合法的bool型变量,并调用subnetIsValid函数判断 bool subnetIsV=subnetIsValid(subnet_Temp); 设置标记ip地址是否合法的bool型变量,并调用ipIsValid函数判断 bool ipIsV=ipIsValid(ip_Temp); 设置标记mask与subnet地址是否匹配的boo

15、l型变量,并调用maskIsMatSubnet函数判断 bool maskIsMatSub=maskIsMatSubnet(mask,subnet_Temp); coutendl; *判断返回的值是否为真*中国计量学院现代科技学院课程设计报告 P.13 if(!maskIsValid) 表示返回的maskIsValid是false coutmask error!(mask为整数并在-32范围内)endl; * else coutmask合法!endl; * * if(!maskIsMatSub) 表示返回的maskIsMatSub是false coutmask与subnet不匹配,error!

16、endl; else coutmask与subnet匹配!endl; * if(!subnetIsV) 表示返回的subnetIsV是false coutsubnet error!endl; * else coutsubnet地址合法!endl; if(!ipIsV) 表示返回的ipIsV是false coutip地址非法!endl;中国计量学院现代科技学院课程设计报告 P.14 else coutip地址合法!0 & nbsubnet0127 & mask8) mask的值小于 coutmask与subnet不匹配,error!=128 & nbsubnet0=191 & mask16) m

17、ask的值小于 coutmask与subnet不匹配,error!=192 & nbsubnet0=223 & mask24) 中国计量学院现代科技学院课程设计报告 P.15mask的值小于 coutmask与subnet不匹配,error!endl; return false; mask与subnet地址匹配 return true;把单个字符地址转换为十进制数值型地址(含四段)void ipTest:split(char *chaddr,int *addr) char ch= .; char *token,*dot4; int iplen=0; token=strtok(chaddr,ch

18、); while(token!=NULL) dotiplen=token; addriplen=atoi(dotiplen);atoi()函数把字符数值转换为int型数值 iplen+; token=strtok(NULL,ch); ip,subnet地址中非法字符的判断bool ipTest:NoIllegalChar(char *ch) int i,len=strlen(ch); for(i=0;i9 | chi-00) return false; 中国计量学院现代科技学院课程设计报告 P.16return true;判断ip是否合法bool ipTest:ipIsValid(char *

19、ip) char ch= .; char ip_one18; strcpy(ip_one,ip); char *token,*dot4; int iplen=0; 库函数strtok(),以ch为界限来分段 token=strtok(ip_one,ch); while(token!=NULL) dotiplen=token; iplen+; token=strtok(NULL,ch);此时,第一个参数必须换为NULL if(iplen!=4) cout地址ip的段数不是,error!endl; return false; int j,t=0; for(j=0;j=strlen(ip);j+)

20、if(ipj=.) t+; if(t!=3) 中国计量学院现代科技学院课程设计报告 P.17 cout地址ip中的.不是,error!endl; return false; int i; for(i=0;i255) if(!NoIllegalChar(doti) 判断含有非法字符 cout地址ip中含有非数字的非法字符,error!255) 判断数值溢出 cout地址ip中含有不在-255间的数字,error!endl; return false; int flag=1;首先设置为非法,即全 for(i=0;iiplen;i+) if(atoi(doti)!=0) 含有非的字段 flag=0;

21、 if(flag=1) cout地址ip全为全,error!endl; return false; 中国计量学院现代科技学院课程设计报告 P.18flag=1;首先设置为非法,即全 for(i=0;iiplen;i+) if(atoi(doti)!=255) flag=0; if(flag=1) cout地址ip全为全,error!0&atoi(dot0)127) A类ip地址 j1=1; 直接从开始 coutIp地址属于A类网endl; if(atoi(dot0)=127) 为的特殊号 coutip地址ip网络号为!,error!=128&atoi(dot0)=191) B类ip地址 j1=

22、2; coutIp地址属于B类网=192&atoi(dot0)=223) C类ip地址 j1=3; coutIp地址属于c类网223&atoi(dot0)255) cout请重新输入ip地址ip,仅限于A,B和C类ip地址,error!endl; return false; if(atoi(dot0)=255) coutip地址ip网络号全为1,error!endl; return false; j2=j1; j1用于判断全情况,j1用于判断全情况的起始下标 int flag=1;首先设置为非法,即主机号全 for(i=j1;iiplen;i+) if(atoi(doti)!=0) flag=

23、0; flag=1;首先设置为非法,即全 for(i=j2;iiplen;i+) if(atoi(doti)!=255) 中国计量学院现代科技学院课程设计报告 P.20 flag=0; if(flag=1) coutip地址ip的主机号全,error!endl; return false; return true;判断子网号subnet是否合法bool ipTest:subnetIsValid(char *subnet) if(!ipIsValid(subnet) 调用判断Ip的函数ipIsValid()进行判断 return false; return true;判断ip是否为子网成员,并输出判断结果void ipTest:print() char subnet_one15,ip

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2