今天写一个IP地址冲突检测程序的时候,写完之后用测试用例测试,发现所写程序没有判断所输入的ip地址是否为合法的IP地址,因此自己写了一个判断输入字符串是否为合法IP地址的程序,程序思路为:判断字符串中点的个数,如果点的个数不等于3或者第一个就为’.’,即为非法IP地址,程序结束。格式符合规范后,判断每个数的范围是否在【0——255】范围内。
程序写的有点简单,反正目前能用就行,之后有时间了再进一步优化修改!
转载请注明出处:http://blog.csdn.net/bad_good_man
#include<stdio.h>
#include<string.h>
#include<sys/socket.h>
#include<math.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
/* int len;
//判断输入的IP地址的长度
len = strlen(argv[1]);
printf("IP地址的长度为:%d\n",len);
//此处想采用函数inet_aton来判断,但是发现如下情况下,inet_aton仍然返回成功。
// = inet_aton("1234568952");
//存储IP地址 */
char ip[20];
strcpy(ip,argv[1]);
printf("the ip is: %s\n",ip);
int i,j,k = 0;
int ip_len = strlen(ip);
printf(