Beim Abrufen der IP-Adresse eines Benutzers mit PHP stehen mehrere Servervariablen zur Auswahl. Obwohl keine Methode narrensicher ist, untersucht dieser Artikel den genauesten Ansatz basierend auf diesen Variablen.
Hintergrund
Das $_SERVER-Array enthält zahlreiche Header, die potenziell IP-Adressinformationen bereitstellen . Die Zuverlässigkeit und Genauigkeit dieser Header kann jedoch je nach Proxy-Konfiguration und Netzwerktopologie variieren.
Häufig verwendete Methoden
Traditionell wurde zum Abrufen die folgende Reihenfolge verwendet Die IP-Adresse eines Benutzers:
Optimierter Ansatz
Um Genauigkeit und Leistung zu verbessern, wurde diese Sequenz wie folgt optimiert:
function get_ip_address() { $headers = ['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR']; foreach ($headers as $header) { if (isset($_SERVER[$header]) && ($ip = trim($_SERVER[$header]))) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { return $ip; } } } return null; }
Achtung
Während dieser Ansatz die IP-Adresse der Benutzer hinter den meisten Proxys abruft, ist er wichtig Zu beachten:
Zusätzlich Hinweise
Das obige ist der detaillierte Inhalt vonWie kann ich in PHP die genaueste Benutzer-IP-Adresse erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!