我继承了调用 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()呼叫的项目。
答案 0 :(得分:0)
IPHostEntry
返回一个list of addresses,而不是单个IP地址。您应该迭代IPHostEntry.AddressList
才能看到所有这些内容。
See here例如Dns.GetHostEntry
的用法。
另外请注意,Windows可以通过hosts
文件覆盖DNS查找。不幸的是,这是劫持特定计算机上DNS查找的一种常用方法。