欢迎来到天天文库
浏览记录
ID:56594649
大小:73.50 KB
页数:13页
时间:2020-06-29
《IP地址的合法性及子网判断.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.目录一、课程设计的目的1二、设计要求.................................................................................1三、课程设计的容13.1课题分析与设计13.2课题实现2四、设计总结7五、程序代码8..一、设计目的本设计要求编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网。二、设计要求1、使用命令行格式2、判断subnet和ip_addr的合法性3、判断掩码的合法性4、在IP地址合法的前提下,判断ip_ad
2、dr是否属于子网subnet三、课程设计分析1.程序大致流程1)分别判断子网号,掩码和IP地址的基本格式是否合法。2)如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。该函数同时判别子网号与掩码是否匹配,子网号为全0或全1,主机号为全0,全1.2.核心代码及说明1)判断IP地址是否合法。一般来说,我们先检查最明显的错误。例如,可以先判断IP中”.”个数是否正确;接着,以“.”为标志将IP字符串按节分开;然后,看该IP是否为4段,再判断各节是否是0~255间的整数。关于网络号,主机号全0全1等问题
3、要在后面结合子网掩码一起判断。这里的关键是怎么将IP字符串以“.”为标志按节分开,这要用到函数strtok(char*strToken,constchar*strDelimit).第一个参数是给定的串,第二个参数是分隔符集合,该函数的功能就是以strDelimit中包含的任意字符为分隔符,在strToken中寻找下一个token。每一次调用strtok后,都会在strToken中插入一个NULL字符,所以,如果要读取下一个token,接下来调用strtok时第一个参数用NULL。charch[]=“.”;//分隔符
4、char*token,*dot[4];intiplen=0;token=strtok(ip,ch);//以“。”标志将IP字符串按节分开while(token!=NULL){//循环进行,直到结束dot[iplen]=token;//将分开的每段赋值给dotiplen++;..token=strtok(NULL,ch);}这样,IP串的每一段都放到dot数组里了,下面判断是否有非法字符,每一段的值是否在0~255之间,就很容易了。判断IP地址是否为子网成员,判断子网号与掩码是否匹配,以及子网号,主机号全0,全1问题
5、(iSubA是子网号,iMask是掩码,iIPA是给定的IP地址)。if((iSubA
6、iMask!=imask){//说明sub与mask不匹配cout<<”子网号与掩码不匹配,error!”<7、iMask)){//ip和掩码做“与”运算,结果和子网号比较if((iIPA8、iMask)==iMask){//说明主机号全0cout<<”主机号全0,error!”<9、iMask)==0xffffffff){//说明主机号全1cout<<”主机号全1,error!”<10、ongto”<11、否属于一个子网时,我对IP地址的分类以及子网划分有了更加深刻的理解。五、程序代码:#include#include#include#includeusingnamespacestd;inta[4]={0,0,0,0};//分段存放子网charIp_addr[15];//ip地址charsu
7、iMask)){//ip和掩码做“与”运算,结果和子网号比较if((iIPA
8、iMask)==iMask){//说明主机号全0cout<<”主机号全0,error!”<9、iMask)==0xffffffff){//说明主机号全1cout<<”主机号全1,error!”<10、ongto”<11、否属于一个子网时,我对IP地址的分类以及子网划分有了更加深刻的理解。五、程序代码:#include#include#include#includeusingnamespacestd;inta[4]={0,0,0,0};//分段存放子网charIp_addr[15];//ip地址charsu
9、iMask)==0xffffffff){//说明主机号全1cout<<”主机号全1,error!”<10、ongto”<11、否属于一个子网时,我对IP地址的分类以及子网划分有了更加深刻的理解。五、程序代码:#include#include#include#includeusingnamespacestd;inta[4]={0,0,0,0};//分段存放子网charIp_addr[15];//ip地址charsu
10、ongto”<11、否属于一个子网时,我对IP地址的分类以及子网划分有了更加深刻的理解。五、程序代码:#include#include#include#includeusingnamespacestd;inta[4]={0,0,0,0};//分段存放子网charIp_addr[15];//ip地址charsu
11、否属于一个子网时,我对IP地址的分类以及子网划分有了更加深刻的理解。五、程序代码:#include#include#include#includeusingnamespacestd;inta[4]={0,0,0,0};//分段存放子网charIp_addr[15];//ip地址charsu
此文档下载收益归作者所有