int IsVaildIP(const char* domain_array,const u8 domain_array_size)
{
int i = 0;
int dot_count = 0;
int ret = 0;
int ip1 = 0;
int ip2 = 0;
int ip3 = 0;
int ip4 = 0;
printf("domain_array = %s\n",domain_array);
if(domain_array_size > 15)
{
printf("domain_array_size > 15\r\n");
return 0;
}
for( i = 0; i < domain_array_size ;i++ )
{
if(domain_array[i] < '0' || domain_array[i] > '9')
{
if(domain_array[i] != '.')
{
printf("illegal character\n");
return 0;
}
else
{
dot_count++;
if(dot_count > 3)
{
printf("more dot!!!\n");
return 0;
}
}
}
}
if(dot_count != 3)
{
printf("less dot!!!\n");
return 0;
}
ret = sscanf(domain_array,"%d.%d.%d.%d",&ip1,&ip2,&ip3,&ip4);
printf("ip1 = %d,ip2 = %d,ip3 = %d,ip4 = %d\n",ip1,ip2,ip3,ip4);
if(ret == 4 && ip1 >= 0 && ip1 <= 255 && ip2 >= 0 && ip2 <= 255 && ip3 >= 0 && ip3 <= 255 && ip4 >= 0 && ip4 <= 255)
return 1;
return 0;
}
int IsVaildIP2(const char* domain_array,const u8 domain_array_size)
{
char temp;;
int ret = 0;
int ip1 = 0;
int ip2 = 0;
int ip3 = 0;
int ip4 = 0;
if(domain_array_size > 15)
return 0;
ret = sscanf(domain_array,"%d.%d.%d.%d%c",&ip1,&ip2,&ip3,&ip4,&temp);
printf("ip1 = %d,ip2 = %d,ip3 = %d,ip4 = %d temp = %c\n",ip1,ip2,ip3,ip4,temp);
if(ret == 4 && ip1 >= 0 && ip1 <= 255 && ip2 >= 0 && ip2 <= 255 && ip3 >= 0 && ip3 <= 255 && ip4 >= 0 && ip4 <= 255)
return 1;
return 0;
}
两种方法都可以。