Получение псевдонимов хоста из IP

Я хочу получить список псевдонимов для имени хоста в 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 () просто возвращает имя хоста в виде строки, и ей не возвращается список псевдонимов. Может ли кто-нибудь помочь мне получить список псевдонимов в этом случае?

3

Решение

Я не думаю, что это возможно. DNS хранит:

  • для каждого имени один или несколько адресов IP / IPv6;
  • для каждого IP / IPv6-адреса — до одного «канонического» имени.

Таким образом, вы можете запросить адреса, связанные с именем (getaddrinfo) или каноническое имя, связанное с адресом (getaddrinfo), но нет способа запросить набор имен, сопоставляемых с данным адресом.

1

Другие решения


По вопросам рекламы [email protected]