`
jusitry
  • 浏览: 9959 次
  • 性别: 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 
 
分享到:
评论

相关推荐

    详解inet_pton()和inet_ntop()函数

    总结来说,inet_pton() 和 inet_ntop() 提供了一种灵活且高效的处理IP地址转换的方法,它们能够自动适应IPv4和IPv6两种地址格式,简化了网络编程中的地址转换过程。在使用这些函数时,需注意不要覆盖静态分配的内存...

    IP处理函数inet_aton()和inet_ntoa()使用说明

    在编程和数据库操作中,有时需要将IP地址转换为整数或者从整数还原回IP地址,这时就用到了`inet_aton()`和`inet_ntoa()`这两个函数。 `inet_aton()`函数是用于将一个点分十进制的IP地址字符串转换为32位无符号整数...

    浅析PHP中的 inet_pton 网络函数

    `inet_pton`是PHP中用于处理IP地址转换的核心函数之一,它允许开发者将人类可读的IP地址(IPv4或IPv6)转换为网络字节序的二进制格式,这种格式通常在低级别网络编程中使用。理解并熟练运用`inet_pton`对于进行网络...

    关于inet_ntoa返回的值是静态变量

    这里存在一个问题:尽管 `a1` 和 `a2` 分别被赋值为两个不同的 IP 地址的字符串表示,但由于 `inet_ntoa` 函数返回的是指向同一个静态缓冲区的指针,因此当第二次调用 `inet_ntoa` 时,`a1` 指向的地址已经被新的 IP...

    inet各种函数.pdf

    本文将详细介绍Linux环境下inet_pton、inet_ntop以及inet_aton这三个函数,它们是用于在点分十进制IP地址和二进制整数IP地址之间进行转换的重要工具。 首先,让我们关注inet_pton和inet_ntop这两个函数。它们在处理...

    inet_download_manager_6.37.15.rar

    inet_download_manager_6.37.15.rar

    IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa).txt

    描述了IP地址格式转换的常用接口,主机字节序和网络字节序相互转换,Ip字符串转换成long型数值;高字节序和低字节序的名词解释

    利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享

    在MySQL数据库中,存储IP地址通常有两种常见的方法:一种是使用传统的字符串格式,如`char(15)`,另一种是利用MySQL内置的`inet_aton()`和`inet_ntoa()`函数,将IP地址转换为整型数值进行存储。这两种方法各有优缺点...

    inet_dsi_panel20200703_BOE_FHD_8279_A55_

    标题“inet_dsi_panel20200703_BOE_FHD_8279_A55_”和描述“三星10.1寸原装屏FHD34PIN代码”暗示了这个压缩包中可能包含的是关于一块特定显示屏的技术规格和驱动程序。这个显示屏由BOE(京东方)生产,具有全高清...

    inet各种函数.docx

    `inet_pton`(Presentation to Network)是将点分十进制的IP地址转换为二进制网络字节序的过程。函数原型如下: ```c int inet_pton(int af, const char *src, void *dst); ``` - `af`参数指定地址族,可以是`AF_...

    mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例

    为了高效地操作IP地址,MySQL提供了一对函数:`INET_ATON` 和 `INET_NTOA`。这两个函数可以帮助我们将IP地址转换成整型数值,从而方便存储和计算。 1. **保存IP地址到数据库** 在设计数据库表结构时,通常我们会为...

    基于Mysql的IP处理函数inet_aton()与inet_ntoa()的深入分析

    在MySQL数据库系统中,IP处理函数`inet_aton()`和`inet_ntoa()`是用于将IP地址在数据库中以更高效的方式存储和检索的关键工具。本文将深入探讨这两个函数的功能、用法以及它们在处理IP地址时的工作原理。 首先,`...

    inet_ntoa()&inet;_addr()&htonl;()

    网络程序设计inet_ntoa()&inet;_addr()&htonl;()函数代码,简单编写的,可供于关于以上函数的思想方式。没有头文件中的强大,没有错误提示及处理代码段,学习网络程序设计可以参考。

    inet_diag.rar_inet

    inet_diag 是一个针对 INET 传输协议套接字的监控模块。在计算机网络中,INET 指的是 Internet 协议族,它包含了诸如 TCP(传输控制协议)、UDP(用户数据报协议)等广泛使用的通信协议。inet_diag 的设计目的是为...

    网络编程学习一:IP地址转换函数.docx

    本文将深入探讨C语言中用于IP地址转换的几个关键函数:inet_aton、inet_ntoa、inet_addr以及IPv6兼容的inet_pton和inet_ntop。 首先,我们关注的是仅支持IPv4的函数:inet_aton、inet_ntoa和inet_addr。这些函数...

    Inet_Download_Manager_v6.38.2_Final.7z

    用于下载网上资源,速度奇快无比,无与伦比,简直让人乍舌,谁用谁知道,你用你也知道。。。就这样,话不多说

Global site tag (gtag.js) - Google Analytics