我見過幾種在.NET中檢索外部IP地址的方法;我想知道的是,所有通常的變量都是相同的(互聯網連接速度等),最快的代碼用於獲取您的外部IP地址?什麼是獲取外部IP地址的絕對最快方法?
這裏是迄今爲止我見過的速度最快:
Private Function GetExternalIP() As String
Dim m As Match = Match.Empty
Try
Dim wClient As New System.Net.WebClient
Dim strURL As String = wClient.DownloadString("https://www.google.com/search?q=my+ip")
Dim strPattern As String = "\b(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b"
' Look for the IP
m = Regex.Match(strURL, strPattern)
Catch ex As Exception
Debug.WriteLine(String.Format("GetExternalIP Error: {0}", ex.Message))
End Try
' Failed getting the IP
If m.Success = False Then Return "IP: N/A"
' Got the IP
Return m.value
End Function
我知道還有其他方法來獲得外部IP爲好,即使用WebBrowser
控制,以獲取該報告您的IP一個頁面,然後分析出來的結果,甚至是一些命令行的方法,如亂搞的:
nslookup myip.opendns.com. resolver1.opendns.com
有沒有人帶到運行自己的測試,以得到fastes時間t方法?
有趣。我使用Google作爲源,因爲它可能更有可能在將來「永遠在那裏」,而不是隨時可能消失的網站。我看到很多IP網站都會離開,破壞你的應用程序。但我確實理解從一個頁面獲取信息的概念,該頁面不包含大量其他源代碼來解析。 –
我同意您對服務可用性的擔憂。我將該網址保存在配置文件中以便於維護/更改 – Steve
如果只有Google會爲我們提供一個簡單的IP信息頁面。 =) –