【问题标题】:c# dns.GetHostEntry() not returning valid ip addressc# dns.GetHostEntry() 没有返回有效的ip地址
【发布时间】:2019-03-22 19:52:01
【问题描述】:

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

【问题讨论】:

  • Dns.GetHostEntry(Dns.GetHostName()).AddressList 给你什么?
  • 它返回一个与我做 ipconfig 时得到的匹配的 ip 地址列表。

标签: c# dns system.net


【解决方案1】:

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

See here 例如Dns.GetHostEntry 的用法。

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

【讨论】:

  • 我确实得到了一个列表,但它是一个不正确的地址列表。我没想过检查主机文件,但它不包含任何映射。
猜你喜欢
  • 1970-01-01
  • 2010-11-14
  • 2015-06-19
  • 1970-01-01
  • 2013-11-24
  • 2010-09-14
  • 2016-12-01
  • 2015-07-26
  • 1970-01-01
相关资源
最近更新 更多