ip地址的合法性及子网判断.doc

ip地址的合法性及子网判断.doc

ID:62254356

大小:16.59 KB

页数:6页

时间:2021-04-23

ip地址的合法性及子网判断.doc_第1页
ip地址的合法性及子网判断.doc_第2页
ip地址的合法性及子网判断.doc_第3页
ip地址的合法性及子网判断.doc_第4页
ip地址的合法性及子网判断.doc_第5页
资源描述:

《ip地址的合法性及子网判断.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验九:IP地址的合法性及子网判断#include#include#include#include//类结构classipTest{charip[15];//定义ip数组,存放ip地址charsubnetPlusMask[18];//定义subnetPlusMask数组,存放子网号和子网掩码中1的个数charsubnet[18];//定义subnet数组,存放子网号charTempIp[15];//定义TempIp数组,存放临时的ip

2、地址charTempSub[18];//定义TempSub数组,存放临时的子网号intmask;//定义整型mask,存放子网掩码中1的个数boolmaskIsValid;//定义布尔值maskIsValid,存放判断mask真值的变量public:ipTest(char*,char*);//定义ipTest函数ipTest(){};boolNoIllegalChar(char*);//非法字符的判断boolipIsValid(char*);//判断IP地址是否合法boolsubnetIsValid(char*);

3、//判断子网号是否合法voidbelong();//判断IP是否为子网成员print();//定义输出函数print};//主函数voidmain(intargc,char*argv[]){if(argc!=3){//判断参数格式是否正确cout<<"Pleaseinputcommand:ip_testsubnet/maskip";return;}else{if(strlen(argv[1])>18){//先判断最简单的错误,子网号及子网掩码长度和是否超出cout<<"subnet/maskistoolong";r

4、eturn;}if(strlen(argv[2])>15){//ip地址长度是否超出cout<<"ipAddressistoolong";return;}ipTesttest(argv[1],argv[2]);//实例化ipTest类test.print();//完成相应判别并输出结果}}//构造函数ipTest::ipTest(char*subnetPlusMask,char*ip){maskIsValid=true;chartemp[2];//把'/'前的字符复制到subnet字符数组中intsmLen=str

5、len(subnetPlusMask);//定义smLen为subnetPlusMask的长度for(inti=0;isubnet[i]=subnetPlusMask[i];//对subnet数组赋值,值为subnetPlusMask中的数值this->TempSub[i]=subnetPlusMask[i];//对TempSub数组赋值,值为subnetPlusMask中的数值}subnet[i]='';//给数组加上结束符T

6、empSub[i]='';//给数组加上结束符if(i>=smLen-2){//初始化mask和maskIsValidif(i==smLen-2){temp[0]=subnetPlusMask[i+1];if(!isdigit(temp[0]))//判断temp中的值是否为字符maskIsValid=false;}else{if(i==smLen-3){temp[0]=subnetPlusMask[i+1];temp[1]=subnetPlusMask[1+2];if(!(isdigit(temp[0])&&i

7、sdigit(temp[1])))//判断temp中的值是否为字符maskIsValid=false;}}mask=atoi(temp);//将temp中的字符数值化if(mask<0

8、

9、mask>32)//判断mask值是否超出范围maskIsValid=false;}else//用十进制数表示的掩码中1的个数只能是一位数或者两位数maskIsValid=false;strcpy(this->subnetPlusMask,subnetPlusMask);//给subnetPlusMask赋值strcpy(this

10、->ip,ip);//给IP赋值strcpy(this->TempIp,ip);}//调用判别函数,并输出结果ipTest::print(){boolsubIsV=subnetIsValid(TempSub);boolipIsV=ipIsValid(TempIp);//判断子网是否合法if(!subIsV)cout<<"subnetisinvalid!"<<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。