Client-IP-Adresse in PHP abrufen
Bevor Sie Methoden zum Abrufen der Client-IP-Adresse erkunden, ist es wichtig zu verstehen, warum nur $_SERVER[ verwendet wird 'REMOTE_ADDR'] kann zu falschen Ergebnissen führen. Proxys, Firewalls oder andere Vermittler können die ursprüngliche IP-Adresse ändern.
Um dieses Problem zu beheben, gibt es hier alternative Ansätze:
Verwendung von GETENV()
Die Funktion getenv() ermöglicht uns den Zugriff auf Umgebungsvariablen. Die folgende Funktion verwendet es:
// Function to get client IP address function get_client_ip() { $ipaddress = ''; if (getenv('HTTP_CLIENT_IP')) $ipaddress = getenv('HTTP_CLIENT_IP'); else if (getenv('HTTP_X_FORWARDED_FOR')) $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); //... (Other conditions omitted for brevity) else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Verwendung von $_SERVER
PHP stellt außerdem den Superglobal $_SERVER für den Zugriff auf Servervariablen bereit. Hier ist eine ähnliche Implementierung, die es verwendet:
// Function to get client IP address function get_client_ip() { $ipaddress = ''; if (isset($_SERVER['HTTP_CLIENT_IP'])) $ipaddress = $_SERVER['HTTP_CLIENT_IP']; else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; //... (Other conditions omitted for brevity) else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Beide Funktionen berücksichtigen mehrere Servervariablen, um die genaueste verfügbare IP-Adresse zu erhalten. Sie priorisieren Variablen wie HTTP_CLIENT_IP und HTTP_X_FORWARDED_FOR, die eine höhere Zuverlässigkeit bieten.
Das obige ist der detaillierte Inhalt vonWie erhalte ich zuverlässig die IP-Adresse eines Clients in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!