地址转换函数

inet_aton、inet_addr和inet_ntoa函数

在点分十进制数串(例如192.168.203.130)与它长度为32位的网络字节序二进制值间转换IPv4地址

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int inet_aton(const char *cp, struct in_addr *inp);
将Internet主机地址cp从IPv4数字和点符号转换为二进制形式(按网络字节顺序),并将其存储在inp指向的结构中。如果地址有效,inet_aton返回非零 1,如果地址无效,则返回零。
in_addr_t inet_addr(const char *cp);
将因特网主机地址cp从IPv4数字和点符号转换为网络字节顺序的二进制数据。如果输入无效,则返回INADDR_NONE(通常为-1)。使用此函数有问题,因为-1是有效地址,255.255.255.255)这意味着点分十进制串255.255.255.255不能由该函数处理。
在inet_addr与inet_aton中,优先使用inet_aton(.
char *inet_ntoa(struct in_addr in);
inet_ntoa()函数将中的Internet主机地址(按网络字节顺序)转换为IPv4点十进制表示法的字符串。
字符串返回到静态分配的缓冲区中(.

inet_pton、inet_ntop函数

#include <arpa/inet.h>
int inet_pton(int af, const char *src, void *dst);
此函数将字符串src转换为af地址族中的网络地址结构,然后将网络地址结构复制到dst。af参数必须是af_INET或af_INET6。dst以网络字节顺序写入
成功返回1,若输入不是有效值则为0,若出错则为1

const char *inet_ntop(int af, const void *src,
                             char *dst, socklen_t size);
此函数将af ad‐dress家族中的网络地址结构src转换为字符串。生成的字符串被复制到dst指向的缓冲区,该缓冲区必须是非空指针。调用者在参数大小中指定此缓冲区中可用的字节数。
若成功则指向结果的指针,若出错则为NULL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值