posts - 17, comments - 0, trackbacks - 0, articles - 0
  博客园  :: 首页  ::  ::  :: 订阅 订阅  ::

判断IP是否是IPV4

Posted on 2020-02-21 12:03  PorkerFace  阅读(...)  评论(...)    收藏
bool isVaildIp(const char *ip)
{
	int dots = 0; /*字符.的个数*/
	int setions = 0; /*ip每一部分总和(0-255)*/ 

	if (NULL == ip || *ip == '.') { /*排除输入参数为NULL, 或者一个字符为'.'的字符串*/ 
		return false;
	}   

	while (*ip) {

		if (*ip == '.') {
			dots ++; 
			if (setions >= 0 && setions <= 255) { /*检查ip是否合法*/
				setions = 0;
				ip++;
				continue;
			}   
			return false;
		}   
		else if (*ip >= '0' && *ip <= '9') { /*判断是不是数字*/
			setions = setions * 10 + (*ip - '0'); /*求每一段总和*/
		} else 
			return false;
		ip++;   
	}   

	if (setions >= 0 && setions <= 255) {
		if (dots == 3) {
			return true;
		}   
	}   

	return false;
}