我正在尝试使用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?
答案 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。