地址转换函数

地址转换函数

IPv4

#include <arpa/inet.h>

点分十进制数串(例如192.168.1.1) ===(转换)===> 32位网络字节序地址

int inet_aton(const char* strptr, struct in_addr *addrptr);

返回: 1----串有效

    0----串有错

in_addr_t inet_addr(const char* strptr);

返回: 成功,32位二进制的网络字节序地址

    失败,返回INADDR_NONE

32位网络字节序地址 ===(转换)===> 点分十进制数串

char *inet_ntoa(struct in_addr inaddr);

IPv4 & IPv6

#include <arpa/inet.h>

family为AF_INET/AF_INET6

点分十进制 ====> 网络字节地址

int inet_pton(int family, const char* strptr, void *addrptr);

返回: 1---成功

    0---输入不是有效格式

    -1--出错

网络字节地址 ====> 点分十进制

const char *inet_ntop(int family, const void *addrptr, char *strptr, size_t len);

返回: NULL 出错

原文地址:https://www.cnblogs.com/coder2012/p/3468939.html