Проблема
Я не специалист по 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