vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: HTML/Internet/Netzwerk · Internet / Browser / IE   |   VB-Versionen: VB630.03.11
Eigene Online IP-Adresse ermitteln

Mit dieser Funktion lässt sich schnell die eigene Online IP-Adresse ermitteln, mit der man im Internet unterwegs ist.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  12.361 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

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.
Und genau das erledigt nachfolgender Code:

Option Explicit
 
' benötigte API-Deklarationen
Private Declare Function URLDownloadToFile Lib "urlmon" _
  Alias "URLDownloadToFileA" ( _
  ByVal pCaller As Long, _
  ByVal szURL As String, _
  ByVal szFileName As String, _
  ByVal dwReserved As Long, _
  ByVal lpfnCB As Long) As Long
 
Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" _
  Alias "DeleteUrlCacheEntryA" ( _
  ByVal lpszUrlName As String) As Long
' Datei-Download mit oder ohne Leerung des URL-Cache
Public Function FileDownload(ByVal sURL As String, _
  ByVal sLocalFile As String, _
  Optional ByVal bClearCache As Boolean = True) As Boolean
 
  Dim lResult As Long
 
  ' URL-Cache leeren?
  If bClearCache Then
    lResult = DeleteUrlCacheEntry(sURL)
  End If
 
  ' Download ausführen
  Screen.MousePointer = vbHourglass
  lResult = URLDownloadToFile(0, sURL, sLocalFile, 0, 0)
  Screen.MousePointer = vbNormal
 
  FileDownload = (lResult = 0)
End Function
' Eigene Online IP-Adresse ermitteln
Public Function GetOnlineIPAddress() As String
  Dim sURL As String
  Dim sTempFile As String
  Dim nResult As Long
  Dim sBuffer As String
  Dim sIP As String
 
  ' URL, die uns die eigene Online IP-Adresse verrät
  sURL = "http://checkip.dyndns.org"
 
  ' temporärer Datei (ggf. löschen, falls vorhanden)
  sTempFile = App.Path & "\ip.tmp"
  If Len(Dir$(sTempFile, vbNormal)) > 0 Then Kill sTempFile
 
  If FileDownload(sURL, sTempFile) Then
    ' temporäre Datei auslesen
    sBuffer = ReadFile(sTempFile)
 
    ' Inhalt prüfen
    If InStr(1, sBuffer, "Current IP Address: ", vbTextCompare) > 0 Then
      ' IP-Adresse aus Inhalt extrahieren
      sBuffer = Mid$(sBuffer, InStr(1, sBuffer, "Current IP Address: ", vbTextCompare) + 20)
      If InStr(sBuffer, "<") > 0 Then
        ' Eigene IP-Adresse zurückgeben
        sIP = Left$(sBuffer, InStr(sBuffer, "<") - 1)
      End If
    End If
  End If
 
  GetOnlineIPAddress = sIP
End Function
' Hilfsfunktion: Inhalt der angegebenen Datei auslesen
Private Function ReadFile(ByVal sFile As String) As String
  Dim F As Integer
  Dim sBuffer As String
 
  F = FreeFile
  Open sFile For Binary As #F
  sBuffer = Space$(LOF(F))
  Get #F, , sBuffer
  Close #F
 
  ReadFile = sBuffer
End Function

Aufrufbeispiel:

' Online IP-Adresse ermitteln
Dim sIP As String
 
sIP = GetOnlineIPAddress()
If Len(sIP) > 0 Then
  MsgBox "Eigene Online IP-Adresse: " & sIP
Else
  MsgBox "Die Online IP-Adresse konnte nicht ermittelt werden!"
End If

Dieser Tipp wurde bereits 12.361 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (1 Beitrag)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel