[System.Net.Dns]:: Метод GetHostEntry разрешает IP в HOSTNAME без записи PTR?

Я пытаюсь использовать Dns.GetHostEntry способ получить имя хоста для данного IP с сервера DNS.

Согласно документации, метод сначала пытается выполнить обратный поиск по IP-адресу. В моем случае это всегда успешно, когда я использую Dns.GetHostEntry,

Теперь странно то, что для того же IP nslookup ничего не дает. Это либо останавливается, либо выдает ошибку: UnKnown can't find 10.4.202.16: Non-existent domain, Когда я смотрю на DNS-сервер (2008 R2), я не могу найти записи PTR в зоне обратного просмотра. Поэтому тот факт, что nslookup не работает, меня не удивляет.

Но что здесь происходит? Является Dns.GetHostEntry используя какие-то недокументированные способы получения HOSTNAME?

2 ответа

Эти методы содержат ошибки: http://blog.tyang.org/2011/04/15/problem-with-dns-name-resolution-when-using-system-net-dns-class/ Я предлагаю использовать Решение 5 из выше пост.

Я только столкнулся с этим, хотя немного отличается на моем ноутбуке. Это называется "RedMonster". Я в учреждении, где мне дали IP-адрес через DNS. И если я делаю обратный поиск по IP-адресу с помощью nslookup, я получаю адрес что-то вроде "123.123.123.123-dns.organization.ch". Однако, если я использую GetHostEntry для обратного поиска, я получаю "RedMonster.organization.ch". Что заставляет меня думать, что GetHostEntry делает что-то "умное" при запуске по умолчанию, и должен использовать локальный кеш для обратного поиска.

Однако я не знаю, как заставить систему использовать DNS, что мне бы хотелось.

Другие вопросы по тегам