de.comp.lang.php.* FAQ

25.4. Wie kann ich die IP des Users erfahren?

Keywords: IP | Adresse | Benutzer | Client | Browser | Proxy | Host

Antwort von Johannes Frömter

In der Umgebungs-Variablen REMOTE_ADDR steht die IP-Adresse des Rechners, der die Anfrage sendet. Dies ist nicht zwangsläufig der Rechner, an dem der User sitzt - es kann genausogut ein Proxy sein. Wenn der Benutzer in einer Firma mit mehr als 2-3 PCs sitzt, ist letzteres sogar sehr wahrscheinlich, aber es kann auch bei ganz normalen Provider-Endkunden so sein.

Folgendes Skript verwendet die Umgebungs-Variable REMOTE_ADDR und versucht, den Hostnamen zur IP mit der Funktion gethostbyaddr() zu ermitteln (sog. reverse lookup).

<?php
// IP bestimmen
$ip = getenv('REMOTE_ADDR');

// IP auflösen und Host bestimmen
$host = gethostbyaddr($ip);
?>

Kommt die Verbindung über einen Proxy zustande, kann es sein, dass dieser die IP "seines" Clients im HTTP-Header weitergibt. Der verbreitete Proxy squid beispielsweise nennt diesen Header X-Forwarded-For, dessen Inhalt dann (wie andere HTTP-Header auch) in einer Umgebungsvariablen zur Verfügung gestellt wird (HTTP_X_FORWARDED_FOR).

Valid HTML 4.01! Valid CSS!

25.4. Wie kann ich die IP des Users erfahren?
http://www.php-faq.de/q/q-code-ip.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team