[System.Net.Dns] :: GetHostEntry方法将IP解析为HOSTNAME而没有PTR记录?

时间:2013-05-21 08:02:59

标签: .net powershell dns nslookup

我正在尝试使用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)时,我在de reverse查找区域中找不到任何PTR记录。因此nslookup失败的事实并没有让我感到惊讶。

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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