2011-03-01 55 views
4

我打算获取有关指定主机名的DNS别名的信息。 我用:如何获取指定主机名的DNS别名?

IPHostEntry hostEntry = Dns.GetHostEntry("hostname") 

不幸的是在MSDN中提到:

返回不受此方法填充IPHostEntry实例的别名财产,永远是空的。

我打算让DNS别名这样的方式:

  1. 获得DNS服务器的ipAddresses注册表SYSTEM\CurrentControlSet\Services\Tcpip\Parameter

  2. 使用DNS WMI提供程序在DNS服务器中获得CNAME记录。但在这种情况下,需要访问DNS服务器的权限。

我的计划是否正确? 是否有另一种方法获得未经DNS服务器许可的CNAME记录?

回答

0

有CodePlex上几个开源.NET库的DNS你可能要退房。 DnDnsDNS Lookup都显示活动并且都支持CNAME查找。

0

不回答你的问题完全相同,但正如你指出的是,别名不被GetHostEntry填充 - 方法Dns.GetHostByName和Dns.Resolve做排序的填充别名

它给出了你可能称为一个愚蠢的不完整别名列表 - 据我所知,它只添加别名,如果查询是按名称,并且该名称是别名。

所以基本上如果返回的主机名称与您输入的不同,那么您输入的内容就是别名。返回的别名值确实具有完全限定名称。所以这真的只是一种获取别名完全限定名的方法。

您应该注意,根据Microsoft,这些方法都已过时,类Dns中的大多数方法也是如此。

参见StackOverflow的帖子