2011-03-01 93 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的帖子