3

我想获取 C++ 中主机名的别名列表。这个输入是一个IP。目前我们调用gethostbyaddr(),它返回一个 hostent 结构。该结构有一个别名列表字段。

     struct  hostent {
        char    FAR * h_name;           /* official name of host */
        char    FAR * FAR * h_aliases;  /* alias list */
        short   h_addrtype;             /* host address type */
        short   h_length;               /* length of address */
        char    FAR * FAR * h_addr_list; /* list of addresses */
};

gethostbyaddr() API 是遗留的,我们也希望支持 IPv6 输入。getnameinfo()所以我们按照 msdn 中的建议替换了 gethostbyaddr() 。但是在此更改之后,无法获取主机名的别名列表。getnameinfo() 只是将主机名作为字符串返回,并且它没有返回别名列表。在这种情况下,有人可以帮我获取别名列表吗?

4

1 回答 1

1

我不认为这是可能的。DNS 存储:

  • 对于每个名称,一个或多个 IP/IPv6 地址;
  • 对于每个 IP/IPv6 地址,最多一个“规范”名称。

因此,您可以查询与getaddrinfo名称关联的地址 ( ),或与地址关联的规范名称 ( getaddrinfo),但无法查询映射到给定地址的名称集。

于 2015-04-29T11:07:15.717 回答