int IsValidIPAddrStr(char *ipAddr)
{
unsigned int i, j, k;
char tmpBuf[4];
if (strlen(ipAddr) > 15)
return(0);
for (i = -1, k = 0; k < 4; k++)
{
memset(tmpBuf, 0, sizeof(tmpBuf));
for (++i, j = 0; (j < 3) && (i < strlen(ipAddr)); i++, j++)
{
if (ipAddr[i] == '.') // 遇到一个.,一节结束
break;
else
{
if (!isdigit(ipAddr[i])) // 包含非数字
return(0);
else
tmpBuf[j] = ipAddr[i];
}
}
if (j == 0) // 连续2个.间无数字
return(0);
if ((atoi(tmpBuf) > 255) || (atoi(tmpBuf) < 0))
return(0); // 大于255或小于0
if (k == 3) // 最后一节结束
break;
if (ipAddr[i] != '.') // 一节的结束符不是.
return(0);
}
if (strlen(ipAddr) != i)
return(0); // 四节结束后,还有字符
else
return(1);
}