Как получить псевдонимы DNS указанного имени хоста? - PullRequest
4 голосов
/ 01 марта 2011

Я пытаюсь получить информацию о псевдонимах DNS указанного имени хоста.Я использовал:

IPHostEntry hostEntry = Dns.GetHostEntry("hostname")

К сожалению, как указано в MSDN:

Свойство Aliases возвращенного экземпляра IPHostEntry не заполняется этим методом и всегда будет пустым.

Я планирую получить псевдонимы DNS следующим образом:

  1. получить ipAddresses DNS-сервера в реестре SYSTEM\CurrentControlSet\Services\Tcpip\Parameter.

  2. с помощью поставщика DNS WMI для получения записей CNAME на DNS-сервере.Но в этом случае требуются разрешения на доступ к DNS-серверу.

Мой план верен?Есть ли другой способ получить записи CNAME без разрешения DNS-сервера?

Ответы [ 4 ]

0 голосов
/ 28 ноября 2016

Вы можете использовать Dns.Resolve, чтобы получить псевдонимы. Используйте #pragma warning disable disable 0618, чтобы отключить предупреждение об устаревшей функции. Это будет работать, если для свойства Ipv6Element.Enabled установлено значение false, которое является значением по умолчанию.

https://msdn.microsoft.com/en-us/library/system.net.dns.resolve(v=vs.110).aspx

0 голосов
/ 15 августа 2011

Стоит отметить, что проект DNS Lookup имеет дополнительный класс DnsProvider, который обеспечивает «правильный» способ получения DNS-серверов из системы без использования реестра.

См http://dnslookup.codeplex.com/wikipage?title=Usage&referringTitle=Documentation для получения дополнительной информации об этом.

0 голосов
/ 10 июля 2013

Точно не отвечая на ваш вопрос, но, как вы заметили, псевдонимы не заполняются GetHostEntry - методы Dns.GetHostByName и Dns.Resolve делают сортировка , заполняющая Псевдонимы .

Это дает то, что вы могли бы назвать тупо неполным списком псевдонимов - насколько я могу судить, он добавляет псевдоним, только если поиск былпо имени, и это имя было псевдонимом.

Таким образом, в основном, если возвращаемое имя хоста отличается от того, что вы вводите, то то, что вы вводите, оказывается псевдонимом.Возвращенное значение псевдонима имеет полное имя.Так что на самом деле это просто способ получить полное имя псевдонима.

Следует отметить, что в Microsoft оба метода устарели, как и большинство методов в классе Dns.

См. Также сообщения stackoverflow

0 голосов
/ 02 марта 2011

В codeplex есть несколько библиотек .net dns с открытым исходным кодом, которые вы, возможно, захотите проверить. DnDns и DNS Lookup оба отображаются активными и оба поддерживают поиск CNAME.

...