【问题标题】:Differences between inet_aton() and gethostbyname() in C?C语言中inet_aton()和gethostbyname()的区别?
【发布时间】:2014-05-30 00:58:30
【问题描述】:

我正在学习 C 和 TCP/UDP。 正如标题... C 中的 inet_aton() 和 gethostbyname() 有什么区别吗?据我所知,两者都将 IP 地址从字符串转换为数字。

【问题讨论】:

    标签: c gethostbyname inet inet-aton


    【解决方案1】:

    gethostbyname() 已过时。您应该使用 getaddrinfo()。

    inet_aton() 仅适用于 IPv4。

    另外,inet_aton() 仅将 IPv4 概念 (0.0.0.0) 转换为 int,getaddrinfo 进行 DNS 解析。

    【讨论】:

    • 另外,getaddrinfo(和旧的gethostbyname)也可以通过 DNS 查找主机名,而inet_aton 仅适用于字符串形式的 IP 地址。
    【解决方案2】:

    gethostbyname() 用于从主机名中获取 ip-address 并将它们存储在 struct in_addr 中。其中 inet_aton 以点分格式获取 ip 地址并转换为网络字节序。

    【讨论】:

      猜你喜欢
      • 2018-09-12
      • 2019-07-21
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2018-08-12
      • 2015-04-30
      • 2015-12-29
      • 1970-01-01
      相关资源
      最近更新 更多