`
jusitry
  • 浏览: 10008 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

inet_pton 用来验证IP是否合法

 
阅读更多

inet_pton 用来验证IP是否合法

 

 

#include <arpa/inet.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int
invalid_ipaddr (char *str)
{
   if (str == NULL || *str == '\0')
      return 1;

   union
   {
      struct sockaddr addr;
      struct sockaddr_in6 addr6;
      struct sockaddr_in addr4;
   } a;
   memset (&a, 0, sizeof (a));
   if (1 == inet_pton (AF_INET, str, &a.addr4.sin_addr))
      return 0;
   else if (1 == inet_pton (AF_INET6, str, &a.addr6.sin6_addr))
      return 0;
   return 1;
}

int main(int argc, char *argv[]){
    if(argc <2 ){
        printf("Useage %s IP\n", argv[0]);
        exit(1);
    }
    if((invalid_ipaddr(argv[1]) == 0)){
        printf("%s is ip\n", argv[1]);
    }else{
        printf("%s is invalid_ipadd \n",  argv[1]);
    }
}

 

 

#./test  "10.110.10.10"
10.110.10.10 is ip
# ./test  "10.110.10.1a"
10.110.10.1a is invalid_ipadd 
# ./test  "10.110.10"   
10.110.10 is invalid_ipadd 
 
分享到:
评论

相关推荐

    python 开发检验IP地址输入是否正确.zip

    对于IPv6,可以使用`inet_pton()`函数进行类似的操作,但需要处理`inet_pton()`不在所有Python版本中都支持的情况。 2. **使用正则表达式**: 另一种方法是使用正则表达式来匹配IP地址的格式。对于IPv4,可以创建...

    ph资源打ip

    2. **IP地址解析**:PHP的`inet_pton()`和`inet_ntop()`函数用于将IP地址在二进制和字符串格式之间转换。`ip2long()`和`long2ip()`则可以将IP地址转换为整型数值,便于计算和比较。 3. **网络通信**:PHP可以通过...

    QQ官网最新IP资料库

    2. **IP合法性检查**:验证输入的IP地址是否有效,是否存在。这可以通过正则表达式匹配或者使用PHP内置函数`filter_var()`来实现。 3. **IP范围判断**:判断一个IP是否在一个指定的IP段内,这对于网络访问控制或...

    ipv6 parse ok

    可能的实现包括读取用户输入的IP地址字符串,使用`inet_pton()`函数进行解析,并进行一些操作,如验证地址的合法性,比较地址,或者将它们转换为另一种格式。 IPv6的其他关键特性包括流标签和优先级,用于QoS(服务...

    User-IP-Show:显示用户ip到站点

    例如,可以使用PHP的`filter_var()`函数验证IP的合法性,或者使用`inet_ntop()`和`inet_pton()`函数进行IP地址的字符串和二进制之间的转换。 此外,为了保护用户隐私,许多网站会采用IP匿名化处理,即将IP地址的...

Global site tag (gtag.js) - Google Analytics