美文网首页
C 语言 - 验证字符串是否正确的 ipv4 地址

C 语言 - 验证字符串是否正确的 ipv4 地址

作者: yc_wu | 来源:发表于2020-09-25 15:38 被阅读0次

参考文章链接:http://blog.csdn.net/life_binary/article/details/81366010

网上搜索了比较多的方法去验证 IPv4 地址字符串,发现都有一点点问题,这里修改一部分内容,留作记录,方法如下:

int isIPv4(const char *str) {
    
    // ipv4 地址长度 7(0.0.0.0) 15(255.255.255.255)
    if (strlen(str) < 7 || strlen(str) > 15) return 0;
    
    char* ptr;
    int count = 0;
    char p[16];
    for (int i = 0; i < strlen(str); i++) {
        p[i] = str[i];
        if (str[i] == '.') {
            count++;
        }
    }
    if(count != 3)  return 0;
    count = 0;
    ptr = strtok(p, ".");
    while(ptr != NULL)
    {
        count++;
        if(ptr[0] == '0' && isdigit(ptr[0])) return 0;
        int a = atoi(ptr);
        if(count == 1 && a == 0) return 0;
        if(a<0 || a>255) return 0;
        ptr = strtok(NULL,".");
    }
    if(count == 4)  return 1;
    else  return 0;
}

相关文章

网友评论

      本文标题:C 语言 - 验证字符串是否正确的 ipv4 地址

      本文链接:https://www.haomeiwen.com/subject/kjsfuktx.html