首页 > 解决方案 > c# dns.GetHostEntry() 没有返回有效的ip地址

问题描述

我继承了调用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()调用的项目。

标签: c#dnssystem.net

解决方案


IPHostEntry返回地址列表,而不是单个 IP 地址。您应该迭代IPHostEntry.AddressList以查看所有这些。

有关Dns.GetHostEntry. _

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


推荐阅读