nslookup google.co.kr
IP業績變動每當我試過這個命令nslookup和GetHostEntry有什麼區別?
但在C#中,庫System.Net.Dns
使用方法GetHostEntry()
,我總是相同的結果。
我想知道爲什麼會出現這種現象,以及我是否可以使用GetHostEntry
獲得與nslookup
相同的重複使用次數。
nslookup google.co.kr
IP業績變動每當我試過這個命令nslookup和GetHostEntry有什麼區別?
但在C#中,庫System.Net.Dns
使用方法GetHostEntry()
,我總是相同的結果。
我想知道爲什麼會出現這種現象,以及我是否可以使用GetHostEntry
獲得與nslookup
相同的重複使用次數。
當你調用GetHostEntry()
你會得到什麼數據是在本地DNS緩存。如果最近沒有檢索到主機名,它將查詢DNS服務器以獲取信息。 NSLOOKUP
命令將每次查詢DNS服務器,忽略可能在本地緩存中的任何內容。這可能會導致相同的數據反覆出現,具體取決於DNS服務器上的緩存。
對於最簡單的DNS結果,您每次都會得到相同的數據。對於託管在服務器組上的羣集服務(如Google),結果將由基於加載等的Google DNS服務器選擇。在這種情況下,您可以從連續調用NSLOOKUP
獲得不同的結果,但GetHostEntry()
將返回相同的結果,直到條目從本地DNS緩存到期。
DNS緩存有助於減少DNS服務器上的負載以及減少網絡流量。除非你每次需要需要一組不同的結果,否則GetHostEntry()
會更快更高效。
非常感謝。但我必須儘可能多地獲取IP信息。所以我需要刷新緩存並獲取特定主機名的另一個IP信息。有什麼方法刷新C#代碼中的chace(使用庫)? –
@JehyunShim保證每次獲得不同結果的唯一方法是直接查詢負責這些記錄的DNS服務器。使用'nslookup -type = ns google.co.kr'獲取負責任的名稱服務器列表,然後使用其中的一個(或多個)進行查詢。例如'nslookup google.co.kr 216.239.34.10'每次都會給出不同的結果。 – Corey