2013-07-15 38 views
1

nslookup google.co.kr IP業績變動每當我試過這個命令nslookup和GetHostEntry有什麼區別?

但在C#中,庫System.Net.Dns使用方法GetHostEntry(),我總是相同的結果。

我想知道爲什麼會出現這種現象,以及我是否可以使用GetHostEntry獲得與nslookup相同的重複使用次數。

回答

2

當你調用GetHostEntry()你會得到什麼數據是在本地DNS緩存。如果最近沒有檢索到主機名,它將查詢DNS服務器以獲取信息。 NSLOOKUP命令將每次查詢DNS服務器,忽略可能在本地緩存中的任何內容。這可能會導致相同的數據反覆出現,具體取決於DNS服務器上的緩存。

對於最簡單的DNS結果,您每次都會得到相同的數據。對於託管在服務器組上的羣集服務(如Google),結果將由基於加載等的Google DNS服務器選擇。在這種情況下,您可以從連續調用NSLOOKUP獲得不同的結果,但GetHostEntry()將返回相同的結果,直到條目從本地DNS緩存到期。

DNS緩存有助於減少DNS服務器上的負載以及減少網絡流量。除非你每次需要需要一組不同的結果,否則GetHostEntry()會更快更高效。

+0

非常感謝。但我必須儘可能多地獲取IP信息。所以我需要刷新緩存並獲取特定主機名的另一個IP信息。有什麼方法刷新C#代碼中的chace(使用庫)? –

+0

@JehyunShim保證每次獲得不同結果的唯一方法是直接查詢負責這些記錄的DNS服務器。使用'nslookup -type = ns google.co.kr'獲取負責任的名稱服務器列表,然後使用其中的一個(或多個)進行查詢。例如'nslookup google.co.kr 216.239.34.10'每次都會給出不同的結果。 – Corey