2010-09-09 185 views
1

我想在vb.net中獲得當前的Internet IP地址。我不想要本地主機的IP地址。像如(http://www.ipchicken.com/網站返回的IP地址)在vb.net獲取IP地址

+0

這個問題沒有通用的解決方案。有NAT,動態代理,以及其他許多事情。你可以退後一步並描述你正在試圖解決的問題,這導致你決定你需要找到機器的互聯網IP地址嗎? – 2010-09-09 06:52:16

回答

0
+1

嗨,我不希望本地IP地址。我想連接調製​​解調器的IP地址。即ipchicken網站返回該IP地址 – Arul 2010-09-09 06:55:07

+0

確保編碼正是這樣做 – MUG4N 2010-09-09 07:44:17

+0

昏暗的ipEntry作爲IPHostEntry = Dns.GetHostByName(www.ipchicken.com) 昏暗的IpAddr作爲IPAddress()= ipEntry.AddressList – MUG4N 2010-09-09 07:44:33

2

我明白你是想爲您出現的是IP地址互聯網而不是你的內部網絡IP。我有一些代碼的地方,我會發掘出你,但它基本上是由這(從內存中):

就像我說的,我會盡量挖掘出的代碼,但這個應該是更多次一個足夠的信息供你使用:-)

1

像這樣的東西應該得到你當前的公共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 
+0

好的謝謝先生。我期待這位先生。我很開心 – Arul 2011-01-21 12:58:29

1

這就是你要找的。我寫了一個簡單的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地址。

0
Function GetIP() As String 
    Dim IP As New WebClient 
    Return IP.DownloadString("http://icanhazip.com/") 
End Function