博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

判断IP是否是IPV4

Posted on 2020-02-21 12:03  PorkerFace  阅读(427)  评论(0编辑  收藏  举报
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;
}