方法一:
完全当做字符串来解释:
(1)使用字符串分隔,然后判断分割后的字符是否合法
(2)
#include <stdio.h>#include <string.h>int a,b,c,d;char s[100];void main() {strcpy(s,"123.1.2.3");if (4==sscanf(s,"%d.%d.%d.%d",&a,&b,&c,&d)) {if (0<=a && a<=255&& 0<=b && b<=255&& 0<=c && c<=255&& 0<=d && d<=255) {printf("[%s] is valid IPv4\n",s);} else {printf("[%s] is invalid IPv4\n",s);}} else {printf("[%s] is invalid IPv4\n",s);}}
(3)正则表达式,python等脚本语言
二,直接调用函数inet_pton或者inet_aton,判断返回值