Am häufigsten wird die IP-Adresse eines Seitenbesuchers verwendet, um ihn zu identifizieren. Darüber hinaus können Sie mit IP jedoch viele zusätzliche Informationen über den Besucher erhalten - zum Beispiel seinen Internetanbieter und seinen geografischen Standort herausfinden. In der Praxis werden am häufigsten serverseitige PHP-Skripte verwendet, um IP-Adressen aus den vom Browser gesendeten Anforderungsheadern zu extrahieren.
Es ist notwendig
Grundkenntnisse in PHP
Anleitung
Schritt 1
Verwenden Sie die in PHP integrierte Funktion getenv, um IP-Adressen aus dem superglobalen Umgebungsvariablenarray zu lesen. Im einfachsten Fall reicht es, die Variable REMOTE_ADDR zu lesen. Der entsprechende PHP-Code könnte so aussehen: $ userIP = getenv ('REMOTE_ADDR');
Schritt 2
Überprüfen Sie zusätzlich zu der in der Anfrage gesendeten Variablen REMOTE_ADDR die Variablen HTTP_VIA und HTTP_X_FORWARDED_FOR. Wenn der Besucher einen Proxy-Server verwendet, muss die Zwischenadresse in beiden Variablen erfasst werden – sowohl in HTTP_VIA als auch in REMOTE_ADDR. In diesem Fall können Sie versuchen, die echte IP des Besuchers über HTTP_X_FORWARDED_FOR herauszufinden - der Proxy-Server muss die ursprüngliche Adresse eingeben. Dies geschieht jedoch nicht immer, und der Benutzer hat die Möglichkeit, einen "undurchsichtigen" Proxy-Server auszuwählen, der nicht die ursprüngliche IP des Besuchers überträgt, der die Anfrage gesendet hat. In jedem Fall sollten Sie so viele Möglichkeiten wie möglich verwenden, um die ursprüngliche IP-Adresse in Ihrem Code zu erhalten, indem Sie eine Prüfung für die HTTP_CLIENT_IP-Variable hinzufügen.
Schritt 3
Verketten Sie in einer Zeile PHP-Code eine sequentielle Überprüfung von drei Umgebungsvariablen, die die ursprüngliche IP-Adresse des Besuchers enthalten können. Dies kann zum Beispiel so gemacht werden: $ userIP = getenv ('HTTP_CLIENT_IP') OR $ userIP = getenv ('HTTP_X_FORWARDED_FOR') OR $ userIP = getenv ('REMOTE_ADDR');
Schritt 4
Entfernen Sie zusätzliche Zeichen und anderen "Müll" aus dem resultierenden IP-Wert, der in Umgebungsvariablen gelangen könnte. Dies kann beispielsweise mit den eingebauten PHP-Funktionen TRIM und preg_replace erfolgen: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
Schritt 5
Kombinieren Sie den gesamten Code in einer benutzerdefinierten Funktion, damit Sie darauf verweisen können, anstatt die Prüf- und Bereinigungszeilen in verschiedenen Teilen Ihrer PHP-Skripte immer wieder zu wiederholen. Zum Beispiel so: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') ODER $ userIP = getenv ('HTTP_X_FORWARDED_FOR') ODER $ userIP = getenv ('REMOTE_ADDR');
RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}