如何判断IP地址是否合法
来源:互联网 发布:淘宝在哪改收货地址 编辑:程序博客网 时间:2024/04/29 08:38
如何判断一个IP地址是否合法,以及如何判断一个IP地址是否在给定的IP地址范围内,废话不多说,上代码
其中GetIpInt(string strIp)是将IP地址转化为可比较大小的整形数,如下:
判断IP地址是否合法:
bool isValidIP(char *ip){if (ip == NULL)return false;char temp[4];int count = 0;while (true){int index = 0;while (*ip != '\0' && *ip != '.' && count < 4){temp[index++] = *ip;ip++;}if (index == 4)return false;temp[index] = '\0';int num = atoi(temp);if (!(num >= 0 && num <= 255))return false;count++;if (*ip == '\0'){if (count == 4)return true;elsereturn false;}elseip++;}}
判断一个IP地址是否在给定的IP地址范围内:
bool IsIpInner(string strDesIp, string strBegin, string strEnd){char* tempDesIp = const_cast<char*>(strDesIp.c_str());char* tempBegin = const_cast<char*>(strBegin.c_str());char* tempEnd = const_cast<char*>(strEnd.c_str());if (isValidIP(tempDesIp) && isValidIP(tempBegin) && isValidIP(tempEnd)){unsigned long lDesIp = GetIpInt(strDesIp);unsigned long lBegin = GetIpInt(strBegin);;unsigned long lEnd = GetIpInt(strEnd);;return (((lDesIp >= lBegin) && (lDesIp <= lEnd)) || ((lDesIp <= lBegin) && (lDesIp >= lEnd)));}elsereturn false;}
其中GetIpInt(string strIp)是将IP地址转化为可比较大小的整形数,如下:
unsigned long GetIpInt(string strIp){char* tempIp = const_cast<char*>(strIp.c_str());char *next_token = NULL;char* ch1 = strtok_s(tempIp, ".", &next_token);char* ch2 = strtok_s(NULL, ".", &next_token);char* ch3 = strtok_s(NULL, ".", &next_token);char* ch4 = strtok_s(NULL, ".", &next_token);unsigned long a = stoi(ch1);unsigned long b = stoi(ch2);unsigned long c = stoi(ch3);unsigned long d = stoi(ch4);return a * 255 * 255 * 255 + b * 255 * 255 + c * 255 + d;}
阅读全文
0 0
- 如何判断IP地址是否合法
- 判断ip地址是否合法
- 判断ip地址是否合法
- 判断IP地址是否合法
- 判断ip地址是否合法
- 判断IP地址是否合法
- /*判断IP地址格式是否合法*/
- 【work】判断ip地址是否合法
- js中判断输入ip地址是否合法
- C语言:判断IP地址是否合法
- C#判断IP地址是否合法正则表达式
- 判断IP地址是否合法正则表达式
- C语言—判断IP地址是否合法
- 判断ip地址是否合法的函数
- 华为oj【判断IP地址是否合法】
- php判断ip的地址是否合法
- 判断IP地址是否合法的函数
- python 判断一个IP地址是否合法
- html5手机开发cookie的用法总结
- .net mvc4 一个 view 显示多个 model
- 大数据应用统一集成平台CDAP简介
- HDU1205
- 二进制的转换
- 如何判断IP地址是否合法
- 尴尬了!OLED屏幕还未普及开来,人们就开始讨论起Micro-LED了!
- Linux安装Tomcat
- 【网易 MC】音频处理与压缩技术
- (转)【WebView的cookie机制 】轻松搞定WebView cookie同步问题
- Hbase
- java基础——并发编程:volatile
- 输入输出流
- leetcode 215. Kth Largest Element in an Array 堆排序的简单应用