判断IP是否是IPV4

Posted porkerface

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断IP是否是IPV4相关的知识,希望对你有一定的参考价值。

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;
}

  

以上是关于判断IP是否是IPV4的主要内容,如果未能解决你的问题,请参考以下文章

算法判断IP地址是不是合法的,包含IPv4和IPv6

算法判断IP地址是不是合法的,包含IPv4和IPv6

判断是否IPV4地址最简单有效的办法

判断两个CIDR是否有IP冲突

是否有库函数来确定 IP 地址(IPv4 和 IPv6)在 C/C++ 中是否为私有/本地?

判断一个字符串是否是ip地址的实现方法