【问题标题】:[System.Net.Dns]::GetHostEntry method resolves IP to HOSTNAME without PTR record?[System.Net.Dns]::GetHostEntry 方法将 IP 解析为没有 PTR 记录的 HOSTNAME?
【发布时间】:2013-05-21 08:02:59
【问题描述】:

我正在尝试使用 Dns.GetHostEntry 方法从 DNS 服务器获取给定 IP 的 HOSTNAME。

根据documentation,该方法首先尝试对IP地址进行反向查找。就我而言,当我使用 Dns.GetHostEntry 时,这总是成功的。

现在,奇怪的是,对于同一个 IP,nslookup 没有给我任何东西。它要么超时,要么给我错误:UnKnown can't find 10.4.202.16: Non-existent domain。当我查看 DNS 服务器 (2008 R2) 时,我在反向查找区域中找不到任何 PTR 记录。所以 nslookup 失败的事实并不让我感到惊讶。

但是这里发生了什么? Dns.GetHostEntry 是否使用了一些未记录的方式来获取 HOSTNAME?

【问题讨论】:

  • 您只有一台 DNS 服务器吗?
  • @Garath 我有 3 个复制。总而言之,所需 IP 范围内没有 PTR 记录。
  • 您可以尝试直接使用IPHostEntry:stackoverflow.com/questions/6856534/…

标签: .net powershell dns nslookup


【解决方案1】:

我刚刚遇到了这个问题,虽然在我的笔记本电脑上略有不同。它被称为“红魔”。我在一个通过 DNS 获得 IP 地址的设施中。如果我使用 nslookup 对 IP 地址进行反向查找,我会得到一个类似于“123.123.123.123-dns.organization.ch”的地址。但是,如果我使用 GetHostEntry 进行反向查找,我会得到“RedMonster.organization.ch”。这让我觉得 GetHostEntry 在以默认方式运行时正在做一些“聪明”的事情,并且必须使用本地缓存来进行反向查找。

我不知道如何强制系统使用 DNS,但是,我想要。

【讨论】:

    【解决方案2】:

    这些方法有错误:http://blog.tyang.org/2011/04/15/problem-with-dns-name-resolution-when-using-system-net-dns-class/ 我建议使用上面帖子中的解决方案 5。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-30
      • 2022-11-16
      • 2019-11-11
      • 1970-01-01
      • 2016-11-20
      • 2022-08-10
      相关资源
      最近更新 更多