温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么判断IP地址与掩码是否合法

发布时间:2021-08-13 23:01:38 来源:亿速云 阅读:438 作者:chen 栏目:编程语言

这篇文章主要讲解了“怎么判断IP地址与掩码是否合法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么判断IP地址与掩码是否合法”吧!

#include <stdio.h> #include <arpa/inet.h> #include <errno.h> #include <string.h> int if_a_string_is_a_valid_ipv4_address(const char *str) {     struct in_addr addr;     int ret;     volatile int local_errno;     errno = 0;     ret = inet_pton(AF_INET, str, &addr);     local_errno = errno;     if (ret > 0);     else if (ret < 0)         printf("EAFNOSUPPORT: %s\n", strerror(local_errno));     else         printf("\"%s\" is not a valid IPv4 address\n", str);     return ret; } bool IsSubnetMask_and_Is_ipv4_address(const char *ip_address, char *subnet)   {       if ( if_a_string_is_a_valid_ipv4_address(ip_address) )       {           unsigned int b = 0, i, n[4];           sscanf(subnet, "%u.%u.%u.%u", &n[3], &n[2], &n[1], &n[0]);//subnet 为子网掩码           for(i = 0; i < 4; ++i) //将子网掩码存入32位无符号整型               b += n[i] << (i * 8);            b = ~b + 1;           if((b & (b - 1)) == 0)   //判断是否为2^n               return true;       }       return false;   } int main(int argc, char *argv[]) {         if ( argc == 3 )         {                 if ( IsSubnetMask_and_Is_ipv4_address(argv[1], argv[2]) )                 {                         printf("ip yanma address is success.\n");                 }                 else                 { printf("no\n");                 }         }         else         {                 printf("INVALIUD ARGS.\n");         }         return 0; }

感谢各位的阅读,以上就是“怎么判断IP地址与掩码是否合法”的内容了,经过本文的学习后,相信大家对怎么判断IP地址与掩码是否合法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ip
AI