网络课程设计报告ip地址的合法性及子网判断(编辑修改稿)内容摘要:

1],argv[2])。 //实例化类 ,传入两个参数 ()。 //调用函数,判断 mask,sub,ip 的合法性问题 system(pause)。 //系统暂停 return 0。 } //构造函数 11 中国计量学院现代科技学院课程设计报告 ipTest::ipTest(char *sub_mask,char *ip) { maskIsValid=true。 //设置 maskIsValid 默认为合法 char temp[2]。 //定义变量 int i,len。 len=strlen(sub_mask)。 /*******************从 sub/mask 中分离出 sub 地址 ***************/ for(i=0。 ilen amp。 amp。 sub_mask[i]!=39。 /39。 i++) { thissub[i]=sub_mask[i]。 thissub_Temp[i]=sub_mask[i]。 } sub_Temp[i]=39。 \039。 sub[i]=39。 \039。 /**************************判断 mask 是否为数值 ************************/ if((len(i+1)3amp。 amp。 len(i+1)0)) //判断 mask 是否为一 /二位字节 { if(len(i+1)==1) //表明 mask 是一位 { temp[0]=sub_mask[i+1]。 //判断字符是否为数值型字符 if(!isdigit(temp[0])) //isdigit()为库函数,可以调用 { coutmask 中含有非数字的非法字符 ,error!endl。 maskIsValid=false。 //mask 不是数值,则设置为 false } } else if((len3)==i) //表明 mask 是二位 { temp[0]=sub_mask[i+1]。 temp[1]=sub_mask[i+2]。 if(!(isdigit(temp[0]) amp。 amp。 isdigit(temp[1]))) { coutmask 中含有非数字的非法字符 ,error!endl。 12 中国计量学院现代科技学院课程设计报告 maskIsValid=false。 } } mask=atoi(temp)。 //自动把数字字符转换为对应的十进制数值的函数 if(mask0 || mask32) maskIsValid=false。 } else //表明 mask 为空或字节超出范围 { coutmask 为空或超出范围 ,error!endl。 maskIsValid=false。 //若 mask 是三位数,则表明 mask 输入非法(其实为 ~32) } /********************************************************************/ strcpy(thissub_mask,sub_mask)。 //给 sub_mask 赋值 strcpy(thisip,ip)。 //给 ip 赋值 strcpy(thisip_Temp,ip)。 //给 ip_temp 赋值 } //判断 mask,sub,ip 的合法性问题 void ipTest::AllJudgment() { //设置标志 sub 地址是否合法的 bool 型变量 ,并调用 subIsValid 函数判断 bool subIsV=subIsValid(sub_Temp)。 //设置标记 ip 地址是否合法的 bool 型 变量 ,并调用 ipIsValid 函数判断 bool ipIsV=ipIsValid(ip_Temp)。 //设置标记 mask 与 sub 地址是否匹配的 bool 型变量 ,并调用 maskIsMatSub 函数判断 bool maskIsMatSub=maskIsMatSub(mask,sub_Temp)。 coutendl。 /************************判断返回的值是否为真 ******************/ 13 中国计量学院现代科技学院课程设计报告 if(!maskIsValid) //表示返回的 maskIsValid 是 false { coutmask error。 (mask 为整数并在 32 范围内 )endl。 } /* else { coutmask 合法。 endl。 } */ /* if(!maskIsMatSub) { //表示返回的 maskIsMatSub 是 false coutmask 与 sub 不匹配 ,error!endl。 } else { coutmask 与 sub 匹配 !endl。 } */ if(!subIsV) { //表示返回的 subIsV 是 false coutsub error。 endl。 } /* else { coutsub 地址合法。 endl。 } if(!ipIsV) { //表示返回的 ipIsV 是 false coutip 地址非法。 endl。 14 中国计量学院现代科技学院课程设计报告 } else { coutip 地址合法。 endl。 } */ //都合法 if(maskIsValid amp。 amp。 maskIsMatSub amp。 amp。 subIsV amp。 amp。 ipIsV) { print()。 } } //判断 mask 与 sub 是否匹配 bool ipTest::maskIsMatSub(int mask,char *sub_Temp) { int nbsub[4]。 //用于放十进制的各段地址 //调用把单个字符地址转换为十进制数值型地址(含四段) 的函数 ,实现转换 split(sub_Temp,nbsub)。 //sub 是 A 类地址 if(nbsub[。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。