Результат GetHostEntry отличается от nslookup - PullRequest
0 голосов
/ 08 февраля 2019

Проблема

Я не специалист по Windows, поэтому постараюсь быть максимально точным, чтобы не создавать больше путаницы.Я на компьютере, который присоединен к домену.То есть, если я перехожу на Control Panel -> System and Security -> System, я вижу в Computer name, domain, and workgroups settings следующую информацию:

Computer name: mycomputer
Full computer name: mycomputer.my.domain.tld
Computer description: ...
Domain: my.domain.tld

Теперь я открываю терминал Powershell и использую команду ipconfig, чтобы получить IPv4-адрес моегокомпьютер, скажем 1.2.3.4, и затем выполните следующую команду

PS> [System.Net.Dns]::GetHostEntry("1.2.3.4")

, где я получаю в ответ, что мой компьютер - mycomputer.my.domain.tld.Затем я выполняю следующую команду

nslookup "1.2.3.4"

, где я получаю в ответ, что мой компьютер mycomputer.otherdomain.tld.Это правильная запись обратного просмотра DNS моего компьютера.

То, что я пробовал

Так что я подумал, что, возможно, запись DNS была кэширована.Я открываю терминал Powershell от имени администратора и выполняю ipconfig /flushdns.После этого команда GetHostEntry по-прежнему показывает, что мой компьютер mycomputer.my.domain.tld.

Затем я вошел на другой компьютер Windows, расположенный в той же подсети, и снова выполнил команду

PS> [System.Net.Dns]::GetHostEntry("1.2.3.4")

которые вернули mycomputer.otherdomain.tld.С этого компьютера команда nslookup "1.2.3.4" также возвращает правильный результат mycomputer.otherdomain.tld.

Сводка

Я не понимаю, что здесь происходит.Команда GetHostEntry возвращает правильный ответ, когда указан IP-адрес другого компьютера, но если указан IP-адрес локального компьютера, возвращается неверный результат обратного просмотра DNS.Может кто-нибудь объяснить мне это поведение?

Обновление

После использования Wireshark для устранения проблемы возникла следующая ситуация (я всегда очищаю кэш DNS с ipconfig /flushdns перед каждымпробная версия):

  • nslookup всегда выполняет обратный DNS-запрос, как и ожидалось
  • GetHostEntry выполняет обратный DNS-запрос, если я запрашиваю ip другого компьютера в той же подсети,скажем 1.2.3.5, и возвращает правильную запись PTR, скажем, othercomputer.otherdomain.tld
  • GetHostEntry не не выполняет обратный DNS-запрос, если я запрашиваю локальный IP 1.2.3.4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...