Rubrik: HTML/Internet/Netzwerk · Netzwerk | VB-Versionen: VB5, VB6 | 13.04.05 |
Dynamische IP-Adresse via PHP-Skritp ermitteln Ermittelt die Internet-IP mit Hilfe eines PHP-Script auf der eigenen/einer Internetseite | ||
Autor: Alexander Leitermann | Bewertung: | Views: 13.443 |
www.leicotech.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Kleines Beispiel: Sie haben ein kleines Netzwerk mit DSL-Router, und wollen (aus welchen Gründen auch immer) die Internet-IP-Adresse wissen.
Eine Möglichkeit besteht darin, im Konfigurationsmenü des Routers nachzusehen. Ebenso gibt es eine Lösung mit WMI und auch eine mit API.
Heute zeige ich eine Lösung ohne WMI und ohne API. Eine aktive Internetverbindung ist erforderlich!!!
Hierzu wird einfach ein PHP-Skript aufgerufen, das die eigene IP-Adresse im Browserfenster ausgibt. Jetzt braucht man nur noch den Inhalt des Browser-Fensters auslesen.
Nehmen Sie ein neues Projekt, fügen ein Micorsoft WebBrowser-Control (Name: WB1) und eine Textbox (Name: Text1) ein. Dann folgenden Code:
Option Explicit Private Enum eWBTextFormat fmtPlain = 0 fmtHTML = 1 End Enum
Private Sub Form_Load() Me.Show WB1.Navigate "http://www.ipinfo.leicotech.de/index.htm" End Sub
' Plain-/HTML-Text auslesen Private Function GetWebBrowserText(ByVal nFormat As eWBTextFormat) As String On Error Resume Next ' Plaintext With WB1.Document If nFormat = fmtPlain Then GetWebBrowserText = .Body.InnerText Else GetWebBrowserText = .documentElement.OuterHTML End If End With End Function
Private Sub WB1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, _ Flags As Variant, TargetFrameName As Variant, PostData As Variant, _ Headers As Variant, Cancel As Boolean) Text1.Text = "" End Sub
Private Sub WB1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim a As String a = Trim(GetWebBrowserText(fmtPlain)) If InStr(1, a, "abgebrochen", vbTextCompare) = 0 And _ InStr(1, a, "angezeigt", vbTextCompare) = 0 Then Text1.Text = "Internet-IP: " & a Else Text1.Text = "IP nicht ermittelbar!" End If End Sub
Achtung: Die Eigenschaft "Visible" des WebBrowser-Controls darf nicht auf "False" gesetzt sein, da sonst die Seite nicht aufgerufen wird. Wenn es unsichtbar sein soll, einfach ausserhalb des sichtbaren Bereichs unterbringen, oder hinter ein anders Control schieben.
Hier noch der Quelltext des PHP-Scripts in der index.htm:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>IP-Info</title> </head> <body> <?php $ip = $_SERVER['REMOTE_ADDR']; echo $ip; ?> </body> </html>
Ihr Internet-Provider muss PHP-Scripte unterstützen, damit es funktioniert. Sie können aber auch die oben verwendete Adresse (www.ipinfo.leicotech.de) verwenden, und sparen sich die Verwendung eines eigenen Scripts.