【发布时间】:2014-05-30 00:58:30
【问题描述】:
我正在学习 C 和 TCP/UDP。 正如标题... C 中的 inet_aton() 和 gethostbyname() 有什么区别吗?据我所知,两者都将 IP 地址从字符串转换为数字。
【问题讨论】:
标签: c gethostbyname inet inet-aton
我正在学习 C 和 TCP/UDP。 正如标题... C 中的 inet_aton() 和 gethostbyname() 有什么区别吗?据我所知,两者都将 IP 地址从字符串转换为数字。
【问题讨论】:
标签: c gethostbyname inet inet-aton
gethostbyname() 已过时。您应该使用 getaddrinfo()。
inet_aton() 仅适用于 IPv4。
另外,inet_aton() 仅将 IPv4 概念 (0.0.0.0) 转换为 int,getaddrinfo 进行 DNS 解析。
【讨论】:
getaddrinfo(和旧的gethostbyname)也可以通过 DNS 查找主机名,而inet_aton 仅适用于字符串形式的 IP 地址。
gethostbyname() 用于从主机名中获取 ip-address 并将它们存储在 struct in_addr 中。其中 inet_aton 以点分格式获取 ip 地址并转换为网络字节序。
【讨论】: