【问题标题】:getaddrinfo with flag AI_NUMERICHOST带有标志 AI_NUMERICHOST 的 getaddrinfo
【发布时间】:2020-10-22 18:44:56
【问题描述】:

请告诉我一些我无法理解的事情。有一个函数getaddrinfo(),还有一个标志AI_NUMERICHOST。 MSDN 说在getaddrinfo() 带有这个标志,你需要发送IP 地址的数值,而不是域名。但为什么呢?

我已经有了 IP 地址,为什么还要向 DNS 索要 IP 地址?

【问题讨论】:

    标签: winapi winsock winsock2


    【解决方案1】:

    getaddrinfo() 为请求的主机/服务输出sockaddr_... 结构(sockaddr_insockaddr_in6)。它不仅与 IP 地址有关,还与其他事物有关,例如套接字类型、服务端口等,具体取决于您的输入和 hint 值。

    因此,如果您已经有一个字符串格式的 IP 地址,您可以让 getaddrinfo() 为您解析该字符串(指定 AI_NUMERICHOST 以避免 DNS)为 二进制文件在输出sockaddr_...中格式化,同时填写其他sockaddr_...字段。

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 1970-01-01
      • 2010-11-27
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      相关资源
      最近更新 更多