我想在vb.net中獲得當前的Internet IP地址。我不想要本地主機的IP地址。像如(http://www.ipchicken.com/網站返回的IP地址)在vb.net獲取IP地址
回答
你可以只知道,如果你的主機(PC)有靜態的互聯網IP地址的真實IP地址,而不是像194.xxx或10.xxx等http://en.wikipedia.org/wiki/Private_network 否則嘗試發送HTTP請求服務一樣www.ipchicken.com或其他http://www.google.ru/search?hl=en&q=my+ip+address知道你的IP地址
嗨,感謝您的回覆,但如何返回vb.net.please中的值告訴代碼 – Arul 2010-09-09 06:44:17
我明白你是想爲您出現的是IP地址互聯網而不是你的內部網絡IP。我有一些代碼的地方,我會發掘出你,但它基本上是由這(從內存中):
- 創建WebRequest和WebResponse對象
- 請求一個網頁(使用的WebRequest),顯示您的使用regular expressions收集您的IP IP(如IP Chicken),並捕捉到WebResponse對象
- 響應解析響應
就像我說的,我會盡量挖掘出的代碼,但這個應該是更多次一個足夠的信息供你使用:-)
像這樣的東西應該得到你當前的公共IP。
Public Class Form1
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
AddHandler wb.DocumentCompleted, AddressOf wb_DocumentCompleted
End Sub
Public WithEvents wb As New WebBrowser
'before using wb add
'AddHandler wb.DocumentCompleted, AddressOf wb_DocumentCompleted
Private Sub GetPubIP()
Try
'the site returns a string like "Current IP Address: 69.59.196.211"
wb.Navigate(New Uri("http://checkip.dyndns.org"))
Catch ex As Exception
'add error checking
End Try
End Sub
Private Sub wb_DocumentCompleted(ByVal sender As Object, _
ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
'parse the reply
Dim parts() As String = wb.Document.Body.InnerText.Split(":"c)
Debug.WriteLine(parts(1).Trim)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
GetPubIP()
End Sub
End Class
好的謝謝先生。我期待這位先生。我很開心 – Arul 2011-01-21 12:58:29
這就是你要找的。我寫了一個簡單的PHP腳本返回調用時的IP地址,然後寫了這個VB.Net代碼來調用它在任何時候:
Public Function jnWhatIsMyExternalIP() As String
Dim strURL As String = "http://www.mycompanywebsite/jnNetworkTools/jnCheckIP.php"
Dim Request As System.Net.WebRequest = System.Net.WebRequest.Create(strURL)
Dim Response As System.Net.WebResponse = Request.GetResponse()
Dim Reader As New System.IO.StreamReader(Response.GetResponseStream())
Dim strMyIP As String = Reader.ReadToEnd()
Return strMyIP
End Function
這裏是PHP代碼,在jnCheckIP.php:
<?php
echo $_SERVER['REMOTE_ADDR'];
?>
調用VB.Net函數會導致用戶計算機調用服務器上的PHP腳本,然後返回用戶IP地址。
Function GetIP() As String
Dim IP As New WebClient
Return IP.DownloadString("http://icanhazip.com/")
End Function
這個問題沒有通用的解決方案。有NAT,動態代理,以及其他許多事情。你可以退後一步並描述你正在試圖解決的問題,這導致你決定你需要找到機器的互聯網IP地址嗎? – 2010-09-09 06:52:16