判断字符串是不是合法的IP地址?

发布于 2022-08-25 11:17:43 字数 75 浏览 14 评论 0

(09年亚信面试题)实现一个程序,对于给定的字符串,判断该字符串是不是一个合法的IP地址?

ps:要求不能用库,最好纯C手写

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

焚却相思 2022-09-01 11:17:43

IPv4 Only

/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/.test('127.0.0.1');

C 么... 之前在 StackOverflow 里看过一个

bool isValidIpAddress(char *ipAddress)
{
    struct sockaddr_in sa;
    int result = inet_pton(AF_INET, ipAddress, &(sa.sin_addr));
    return result != 0;
}

[1] http://stackoverflow.com/questions/79...

梦里兽 2022-09-01 11:17:43

PHP 版 (IPv4 only)

if(!ip2long($ip)) echo "Invalid IP";
倥絔 2022-09-01 11:17:43
int isIPValid(char *ip ){
        int p[4] ={0,0,0,0};
        int len = strlen(ip);
        int j = 0;
        for(int i = 0; i < len; i++){
                if(ip[i] == '.' || i == len -1 ){
                        /*分割符*/
                        if(p[j] >= 0 && p[j] <= 255){
                                j ++;
                        }else{
                                return 0;
                        }
                }else{
                        int d = ip[i] - '0';
                        if(d > 9 || d < 0){
                                return 0;
                        }else{
                                p[j] = p[j] * 10 + d;
                        }
                }
        }
        return 1;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文