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. 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
Anzeige
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. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |