vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2015
 
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:  6.269 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise über 100,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 455,- EUR statt 569,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 18,70 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 58,70 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    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 6.269 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-2015 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