[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, что мне бы хотелось.