c++实现ip是否在同一个网段的判断
来源:互联网 发布:美国服装品牌 知乎 编辑:程序博客网 时间:2024/04/29 15:56
废话不说直接贴代码:
ip的数据结构
typedef struct IP_Struct{//ip地址划分后各个域的值struct IpAdress_Struct{int first; int second; int third; int forth;}IpAdress,*pIPAdress;//ip地址char szIPAdress[MAX_PATH];//子网掩码char szIPMask[MAX_PATH];IP_Struct(){strcpy(szIPAdress,"");strcpy(szIPMask,"");}IP_Struct(char szIPAdress[],char szIPMask[]){strcpy(this->szIPAdress,szIPAdress);strcpy(this->szIPMask,szIPMask);}}IP,*pIP;
判断ip是否合理及获取ip各个域的值
bool JudgeIp(char *szIP,IP_Struct::IpAdress_Struct *ipAdress){if (!szIP) return false;int index=0;int first=0,second=0,third=0,forth=0; std::string ip=std::string(szIP); first=atoi(&ip[index]); if (first>255) return false;if (ipAdress)ipAdress->first=first; index++; index=ip.find_first_of('.',index); second=atoi(&ip[++index]); if(second>255) return false; if (ipAdress)ipAdress->second=second; index++; index=ip.find_first_of('.',index); third=atoi(&ip[++index]); if(third>255) return false; if (ipAdress)ipAdress->third=third; index++; index=ip.find_first_of('.',index); forth=atoi(&ip[++index]); if(forth>255) return false; if (ipAdress)ipAdress->forth=forth; return true; }
判断是否同一网段
//-1 indicates ip格式错误,0表示不同网段,1表示同网段int IsSameNetworkSegment(char *szIPAdress,char *szMask,char *szIPAdresss1){if (!szIPAdress||!szMask||!szIPAdresss1) return false; IP_Struct::IpAdress_Struct ip,ip1,mask; if (JudgeIp(szIPAdress,&ip)&&JudgeIp(szIPAdresss1,&ip1)&&JudgeIp(szMask,&mask)) { ip.first=ip.first & mask.first; ip.second=ip.second & mask.second; ip.third=ip.third & mask.third; ip.forth=ip.forth & mask.forth; ip1.first=ip1.first & mask.first; ip1.second=ip1.second & mask.second; ip1.third=ip1.third & mask.third; ip1.forth=ip1.forth & mask.forth; if(ip.first==ip1.first&&ip.second==ip1.second&&ip.third==ip1.third&&ip.forth==ip1.forth) return 1; else return 0;}else return -1;}
1 0
- c++实现ip是否在同一个网段的判断
- 判断两个IP大小及是否在同一个网段中
- 判断两个IP地址是否在同一个网段中
- 校验:javascript判断两个IP地址是否在同一个网段
- 判断两个IP大小及是否在同一个网段中
- java判断ip是否在同一个网段上
- 判断IP地址是否在某个指定的网段内
- 判断某IP是否在某个网段
- 判断两个IP是否在同一网段
- 判断两个IP地址是不是在同一个网段
- 如何判断两个IP地址是不是在同一个网段
- 如何判断两个IP地址是不是在同一个网段
- 如何ping同一个网段内的所有在用IP
- java判断IP是否在某个网段中
- 判断ip地址是否在一个网段(局域网)
- 通过子网掩码判断两个IP是否在同一网段
- java判断某个ip是否在一个网段内
- java判断IP是否在某个网段中
- 网易云音乐API分析
- OpenGL应用开发---基础变换
- struts2项目出现500错误
- 怎么做好事
- 常规表达式转换为后缀表达式
- c++实现ip是否在同一个网段的判断
- js 易错知识点
- 复制构造函数
- Tesseract/OpenCV on Android
- HTML标签嵌套规则以及常规应用
- [Leetcode,python] Find All Numbers Disappeared in an Array 寻找数组中消失的数字
- 8个技巧倍速提升Gradle构建
- js总结
- HTML总结