c#dns.GetHostEntry()没有返回有效的IP地址

时间:2019-03-22 19:52:02

标签: c# dns system.net

我继承了调用 Dns.GetHostEntry(“ 10.1.12.180”)(或通过使用计算机的dns)和 IPHostEntry 的代码。返回的IP地址为“ 10.100.160.18”。如果我在同一子域(10.1.12)上运行代码,则可以正常运行。另一位使用WireShark的开发人员表示,他看不到正在进行的调用,并且我必须重写GetHostEntry调用以返回该特定地址(我们以前在网络上拥有该地址)。我没有接听电话。

我知道我可以使用 IPAddress.Parse()来解决此问题,因为我确实具有正确的IP地址。

有什么想法为什么会返回不正确的IP?它曾经工作。我已经与IT部门核对过,他们没有对错误IP地址的任何映射。唯一的不同是IP地址10.1.12.180的计算机已更新到Windows 10(从Windows 7)。

我已经隔离了该呼叫,所以我有一个仅执行 Dns.GetHostEntry()呼叫的项目。

1 个答案:

答案 0 :(得分:0)

IPHostEntry返回一个list of addresses,而不是单个IP​​地址。您应该迭代IPHostEntry.AddressList才能看到所有这些内容。

See here例如Dns.GetHostEntry的用法。

另外请注意,Windows可以通过hosts文件覆盖DNS查找。不幸的是,这是劫持特定计算机上DNS查找的一种常用方法。