您的位置:首页 > 其它

判断ip地址是否合法

2012-11-01 19:56 148 查看
下面是一个判断ip地址是否合法的算法:

#include <stdio.h>
bool IsDigit(char Digit)
{
bool Flag = false;
if(Digit >= '0' && Digit <= '9')
{
Flag = true;
}
return Flag;
}

bool IsFormatValid(char IP[])
{
int DotCnt = 0;
bool Flag = false;
while(*IP != '\0')
{
if(*IP == '.')
{
DotCnt++;
}
else if(!IsDigit(*IP))
{
return false;
}
Flag = true;
IP++;
}
if(DotCnt == 3)
{
return Flag;
}
else
{
return false;
}
}

bool IsValueValid(char IP[])
{
int Len = 0;
int Integer = 0;
while(*IP != '\0')
{
if(IsDigit(*IP))
{
Integer = Integer*10 + *IP - '0';
}
else
{
if(Integer > 255)
{
return false;
}
Integer = 0;
}
IP++;
}
}

int main()
{
char IpAddress[30];
printf("Please input the ip address:\n");
scanf("%s", IpAddress);
if(IsFormatValid(IpAddress) && IsValueValid(IpAddress))
{
printf("%s -> VALID", IpAddress);
}
else
{
printf("%s -> INVALID", IpAddress);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: