c/c++判断ipv4地址

 1 bool is_ipv4_str(const char* ipv4)
 2 {
 3     if (!ipv4 || !ipv4[0]) {
 4         return false;
 5     }
 6 
 7     size_t len = strlen(ipv4);
 8     if (len < MIN_IPV4_LEN || len > MAX_IPV4_LEN) {
 9         return false;
10     }
11 
12     int num[4] = {0};
13     char c = 0;
14 
15     if (sscanf(ipv4, "%d.%d.%d.%d%c", num, num+1, num+2, num+3, &c) != 4) {
16         return false;
17     }
18 
19     int i = 0;
20     for (; i < 4; i++) {
21         if (num[i] < 0 || num[i] > 255) {
22             return false;
23         }
24     }
25 
26     return true;
27 }

猜你喜欢

转载自www.cnblogs.com/huitiandayu/p/11020614.html