Я хочу получить список псевдонимов для имени хоста в 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 */
};
API gethostbyaddr () является устаревшим, и мы также хотели поддерживать входы IPv6. Таким образом, мы заменили gethostbyaddr () на getnameinfo()
как рекомендовано в MSDN. Но после этого изменения нет способа получить список псевдонимов для имени хоста. getnameinfo () просто возвращает имя хоста в виде строки, и ей не возвращается список псевдонимов. Может ли кто-нибудь помочь мне получить список псевдонимов в этом случае?
Я не думаю, что это возможно. DNS хранит:
Таким образом, вы можете запросить адреса, связанные с именем (getaddrinfo
) или каноническое имя, связанное с адресом (getaddrinfo
), но нет способа запросить набор имен, сопоставляемых с данным адресом.