Действительно ли Dns.GetHostAddresses возвращает все зарегистрированные IP-адреса? - PullRequest
3 голосов
/ 08 августа 2010

Действительно ли Dns.GetHostAddresses возвращает все зарегистрированные IP-адреса?

То есть DNS может иметь несколько IP-адресов, зарегистрированных для DNS-имени для целей циклического перебора (например, несколько прокси-серверов, но дают возможность использовать один основной DNS-прокси)имя сервера)

Но действительно ли метод .NET "Dns.GetHostAddresses (hostname)" возвращает все эти зарегистрированные IP-адреса обратно?

Если нет, то есть ли еще какие-либо предложения о том, как получить список всех возможных IP-адресов, к которым может обращаться DNS-имя?

Ответы [ 2 ]

4 голосов
/ 08 августа 2010

Для серверов, которые имеют так называемые «циклические» адреса, они могут быть настроены на использование большого количества IP-адресов для одного имени. Однако размер ответа DNS ограничен определенным размером, что, в свою очередь, ограничивает количество адресов, которые могут быть возвращены в одном запросе. Поэтому обычно DNS-сервер может перетасовывать список IP-адресов и возвращать первые n, которые соответствуют ответу.

Для мысленного эксперимента спросите себя, может ли один запрос к google.com вернуть всех адресов, которые могли бы обслуживать веб-страницы Google.

2 голосов
/ 08 августа 2010

В документации для Dns.GetHostAddresses указано, что

Метод GetHostAddresses запрашивает у DNS-сервера IP-адреса, связанные с именем хоста.

Поэтому он вернет все IP-адреса, которые может предоставить DNS-сервер, к которому он обращается. Таким образом, ответ квалифицированный да. Но только если DNS-сервер, на котором работает ваш код, сможет получить полный и правильный список IP-адресов для запрашиваемого имени хоста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...