的存在,在C#:快速的方法來檢查主機
如果我ping一個網址(如「http://myurl.com」)和URL不存在我到一個SocketException(沒有這樣的主機是知道的)。該請求是確定地址是否存在的非常快速的方式。有沒有類似的方法來檢查IP是否存在?
顯然有ping的IP的可能性,但如果主機位於中國(我設在瑞典),那麼平的時間變得很長......
的存在,在C#:快速的方法來檢查主機
如果我ping一個網址(如「http://myurl.com」)和URL不存在我到一個SocketException(沒有這樣的主機是知道的)。該請求是確定地址是否存在的非常快速的方式。有沒有類似的方法來檢查IP是否存在?
顯然有ping的IP的可能性,但如果主機位於中國(我設在瑞典),那麼平的時間變得很長......
沒有,沒有萬無一失的方式來檢查是否使用IP,因爲使用未在任何地方註冊。
主機名檢查速度快的原因是,您不需要實際與主機通話以確定主機名是否存在,它是否已在DNS系統中註冊。
您所做的主機名檢查絕不會保證主機確實存在,只是存在主機名到IP號的別名,主機可能已關閉,您將無法從中知道擡頭。
此外,即使您使用ping來確定是否使用IP,您也不確定,因爲可能存在防火牆阻止ping並仍然允許其他IP通信(例如HTTP)。要最好地瞭解一個主機是否可以滿足您的請求,您最好使用您感興趣的實際協議進行輪詢。
IT並不完全清楚您的意思。您可以使用Dns.GetHostEntry(string)
執行DNS解析,這將解析一個名稱(例如「myurl.com」)到一個主機條目(可能包含許多地址) - 但不會告訴您是否有任何內容實際使用這些IP地址。
你想完成什麼?通常如果你想知道某個特定的主機是否存在,那是因爲你想用特定的協議(例如HTTP)來與它通話。在這種情況下,最好使用該協議發出請求 - 否則即使主機存在,也沒有什麼可以說對您有用的。
嘗試telnet。 http://dotnettelnet.sourceforge.net/
連接後,您確定已達到您的IP,然後立即發出關閉會話。否則,該IP無法訪問。
這裏「存在」是什麼意思? – AakashM 2012-01-10 09:08:28
還有一些主機配置爲不響應ping – 2012-01-10 09:08:30
如果您無法ping主機,則主機不可訪問。 – fyr 2012-01-10 09:09:33