欢迎来到天天文库
浏览记录
ID:62254356
大小:16.59 KB
页数:6页
时间:2021-04-23
《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!"<<
此文档下载收益归作者所有