2010-09-09 196 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