c # dns.GetHostEntry () не возвращает действительный IP-адрес - PullRequest
0 голосов
/ 22 марта 2019

Я унаследовал код, который выполняет вызов Dns.GetHostEntry ("10.1.12.180") (или с использованием DNS компьютера) и IPHostEntry , который возвращаетсядругой IP-адрес "10.100.160.18" Если я запускаю код на том же поддомене (10.1.12), он работает.Другой разработчик, использующий WireShark, сказал, что он не видит выполняемый вызов и что я должен переопределить вызов GetHostEntry, чтобы вернуть этот конкретный адрес (у нас был этот адрес в сети).Я не отменяю вызов.

Я знаю, что могу обойти проблему, используя IPAddress.Parse () , поскольку у меня есть правильный IP-адрес.

Есть идеи, почему он вернул бы неправильный IP?Раньше работал.Я проверил с ИТ, и они не имеют каких-либо сопоставлений с неправильным IP-адресом.Единственное отличие состоит в том, что машина с IP-адресом 10.1.12.180 была обновлена ​​до Windows 10 (из Windows 7).

Я изолировал вызов, чтобы у меня был проект, который просто делает Dns.GetHostEntry () вызов.

1 Ответ

0 голосов
/ 22 марта 2019

IPHostEntry возвращает список адресов , а не один IP-адрес. Вы должны повторить IPHostEntry.AddressList, чтобы увидеть все из них.

См. Здесь , например, использование Dns.GetHostEntry.

Также следует помнить, что Windows может переопределить поиск DNS через файл hosts. К сожалению, это распространенный способ перехвата DNS-запросов на конкретном компьютере.

...