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() 提供了一种灵活且高效的处理IP地址转换的方法,它们能够自动适应IPv4和IPv6两种地址格式,简化了网络编程中的地址转换过程。在使用这些函数时,需注意不要覆盖静态分配的内存...
在编程和数据库操作中,有时需要将IP地址转换为整数或者从整数还原回IP地址,这时就用到了`inet_aton()`和`inet_ntoa()`这两个函数。 `inet_aton()`函数是用于将一个点分十进制的IP地址字符串转换为32位无符号整数...
`inet_pton`是PHP中用于处理IP地址转换的核心函数之一,它允许开发者将人类可读的IP地址(IPv4或IPv6)转换为网络字节序的二进制格式,这种格式通常在低级别网络编程中使用。理解并熟练运用`inet_pton`对于进行网络...
这里存在一个问题:尽管 `a1` 和 `a2` 分别被赋值为两个不同的 IP 地址的字符串表示,但由于 `inet_ntoa` 函数返回的是指向同一个静态缓冲区的指针,因此当第二次调用 `inet_ntoa` 时,`a1` 指向的地址已经被新的 IP...
本文将详细介绍Linux环境下inet_pton、inet_ntop以及inet_aton这三个函数,它们是用于在点分十进制IP地址和二进制整数IP地址之间进行转换的重要工具。 首先,让我们关注inet_pton和inet_ntop这两个函数。它们在处理...
inet_download_manager_6.37.15.rar
描述了IP地址格式转换的常用接口,主机字节序和网络字节序相互转换,Ip字符串转换成long型数值;高字节序和低字节序的名词解释
在MySQL数据库中,存储IP地址通常有两种常见的方法:一种是使用传统的字符串格式,如`char(15)`,另一种是利用MySQL内置的`inet_aton()`和`inet_ntoa()`函数,将IP地址转换为整型数值进行存储。这两种方法各有优缺点...
标题“inet_dsi_panel20200703_BOE_FHD_8279_A55_”和描述“三星10.1寸原装屏FHD34PIN代码”暗示了这个压缩包中可能包含的是关于一块特定显示屏的技术规格和驱动程序。这个显示屏由BOE(京东方)生产,具有全高清...
`inet_pton`(Presentation to Network)是将点分十进制的IP地址转换为二进制网络字节序的过程。函数原型如下: ```c int inet_pton(int af, const char *src, void *dst); ``` - `af`参数指定地址族,可以是`AF_...
为了高效地操作IP地址,MySQL提供了一对函数:`INET_ATON` 和 `INET_NTOA`。这两个函数可以帮助我们将IP地址转换成整型数值,从而方便存储和计算。 1. **保存IP地址到数据库** 在设计数据库表结构时,通常我们会为...
在MySQL数据库系统中,IP处理函数`inet_aton()`和`inet_ntoa()`是用于将IP地址在数据库中以更高效的方式存储和检索的关键工具。本文将深入探讨这两个函数的功能、用法以及它们在处理IP地址时的工作原理。 首先,`...
网络程序设计inet_ntoa()&inet;_addr()&htonl;()函数代码,简单编写的,可供于关于以上函数的思想方式。没有头文件中的强大,没有错误提示及处理代码段,学习网络程序设计可以参考。
inet_diag 是一个针对 INET 传输协议套接字的监控模块。在计算机网络中,INET 指的是 Internet 协议族,它包含了诸如 TCP(传输控制协议)、UDP(用户数据报协议)等广泛使用的通信协议。inet_diag 的设计目的是为...
本文将深入探讨C语言中用于IP地址转换的几个关键函数:inet_aton、inet_ntoa、inet_addr以及IPv6兼容的inet_pton和inet_ntop。 首先,我们关注的是仅支持IPv4的函数:inet_aton、inet_ntoa和inet_addr。这些函数...
用于下载网上资源,速度奇快无比,无与伦比,简直让人乍舌,谁用谁知道,你用你也知道。。。就这样,话不多说