acl  3.5.3.0
acl_sane_inet.h 文件参考
+ acl_sane_inet.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

union  ACL_SOCKADDR
 

函数

ACL_API size_t acl_inet_ntop (const struct sockaddr *sa, char *buf, size_t size)
 
ACL_API size_t acl_inet_pton (int af, const char *src, struct sockaddr *dst)
 
ACL_API size_t acl_sane_pton (const char *src, struct sockaddr *dst)
 
ACL_API const char * acl_inet_ntop4 (const unsigned char *src, char *dst, size_t size)
 
ACL_API const char * acl_inet_ntoa (const struct in_addr in, char *dst, size_t size)
 
ACL_API int acl_is_ip (const char *ip)
 
ACL_API int acl_is_ipv4 (const char *ip)
 
ACL_API int acl_is_ipv6 (const char *ip)
 
ACL_API int acl_ipv4_addr_valid (const char *addr)
 

函数说明

◆ acl_inet_ntoa()

ACL_API const char* acl_inet_ntoa ( const struct in_addr  in,
char *  dst,
size_t  size 
)

将IP地址转换成字符串格式

参数
in{struct in_addr}
dst{char *} 存储转换结果
size{size_t} dst 的空间大小
返回
{const char*} NULL: error; !NULL: ok

◆ acl_inet_ntop()

ACL_API size_t acl_inet_ntop ( const struct sockaddr *  sa,
char *  buf,
size_t  size 
)

将 socket 地址转为字符串格式,同时支持 IPV4 与 IPV6 及 UNIX 域套接口

参数
sa{const struct sockaddr*}
buf{char*} 存储转换结果
size{size_t} buf 空间大小
返回
{size_t} 返回 sockaddr 地址所对应地址类型的实际长度,如对于 IPV4 则 对应 struct sockaddr_in 的结构体长度,对于 IPV6 则对应 struct sockaddr_in6 的结构体长度,返回值 0 表示转换出错

◆ acl_inet_ntop4()

ACL_API const char* acl_inet_ntop4 ( const unsigned char *  src,
char *  dst,
size_t  size 
)

将IP地址转换成字符串格式

参数
src{const unsigned char*} struct in_addr in.s_addr 的连续内存表示
dst{char *} 存储转换结果
size{size_t} dst 的空间大小
返回
{const char*} NULL: error; !NULL: ok

◆ acl_inet_pton()

ACL_API size_t acl_inet_pton ( int  af,
const char *  src,
struct sockaddr *  dst 
)

将字符串表示的地址转为 socket 地址,支持 IPV4 与 IPV6 及 UNIX 域套接口

参数
af{int} 地址类型,AF_INET(IPV4)或 AF_INET6(IPV6)
src{const char*} 字符串表示的地址,可以为 ip、ip::port 或 ipv4:port
dst{struct sockaddr*} 存储转换结果
返回
{size_t} 返回对应 IPV4 或 IPV6 地址结构体的大小,如对于 IPV4 则 对应 struct sockaddr_in 的结构体长度,对于 IPV6 则对应 struct sockaddr_in6 的结构体长度,返回值 0 表示转换出错

◆ acl_ipv4_addr_valid()

ACL_API int acl_ipv4_addr_valid ( const char *  addr)

判断所给的 ip 地址是否符合 xxx.xxx.xxx.xxx:port 格式

参数
addr{const char*} IP:PORT 地址
返回
{int} 1: 符合, 0: 不符合

◆ acl_is_ip()

ACL_API int acl_is_ip ( const char *  ip)

判断给定的字符串是否是正确的 ip 地址

参数
ip{const char *ip}
返回
{int} != 0: 是; == 0: 否

◆ acl_is_ipv4()

ACL_API int acl_is_ipv4 ( const char *  ip)

◆ acl_is_ipv6()

ACL_API int acl_is_ipv6 ( const char *  ip)

◆ acl_sane_pton()

ACL_API size_t acl_sane_pton ( const char *  src,
struct sockaddr *  dst 
)

将字符串表示的地址转为 socket 地址,支持 IPV4 与 IPV6 及 UNIX 域套接口, 内部将自动探测所给地址字符串的地址类型,即自动区分是 IPV4 还是 IPV6

参数
src{const char*} 字符串表示的地址,可以为 ip、ip::port 或 ipv4:port
dst{struct sockaddr*} 存储转换结果
返回
{size_t} 返回对应 IPV4 或 IPV6 地址结构体的大小,如对于 IPV4 则 对应 struct sockaddr_in 的结构体长度,对于 IPV6 则对应 struct sockaddr_in6 的结构体长度,返回值 0 表示转换出错