Die lokale Rechner IP-Adresse unterscheidet sich bekanntlich von der IP-Adresse mit der man online im Internet unterwegs ist. Durch Aufruf der Internetseite http://checkip.dyndns.org bekommt seine eigene Online IP-Adresse angezeigt. Was liegt also näher, als einfach den Inhalt dieser Seite auszulesen, wenn man zur Laufzeit die Online IP-Adresse des Anwenders ermitteln muss. Imports System.Net Imports System.IO ... ' Internet-Datei auslesen Private Function inetReadFile(ByVal sURL As String) As String Dim sBuffer As String ' WebRequest Dim oRequest As WebRequest = WebRequest.Create(sURL) ' GET-Methode (wir wollen etwas abholen :-) oRequest.Method = "GET" ' Antwort auf unsere Anfrage abholen Dim oResponse As WebResponse = oRequest.GetResponse() ' Datenstrom auslesen Dim oStream As New StreamReader(oResponse.GetResponseStream()) sBuffer = oStream.ReadToEnd() oStream.Close() ' Beenden oResponse.Close() ' Inhalt zurückgeben Return sBuffer End Function ''' <summary> ''' Ermittelt die eigene Online IP-Adresse ''' </summary> Public Function GetOnlineIPAddress() As String Dim sIP As String = "" ' URL, die uns die eigene Online IP-Adresse verrät Dim sURL As String = "http://checkip.dyndns.org" ' Inhalt der Internetseite auslesen Dim sBuffer As String = inetReadFile(sURL) If sBuffer.Length > 0 Then ' IP-Adresse extrahieren If sBuffer.Contains("Current IP Address: ") Then sBuffer = sBuffer.Substring(sBuffer.IndexOf("Current IP Address: ") + 20) If sBuffer.IndexOf("<") > 0 Then sIP = sBuffer.Substring(0, sBuffer.IndexOf("<")) End If End If End If Return (sIP) End Function Aufrufbeispiel: ' Online IP-Adresse ermitteln Dim sIP As String = GetOnlineIPAddress() If sIP.Length > 0 Then MsgBox("Eigene Online IP-Adresse: " & sIP) Else MsgBox("Die Online IP-Adresse konnte nicht ermittelt werden!") End If |