Heim > Backend-Entwicklung > PHP-Tutorial > Wie erhalte ich zuverlässig die IP-Adresse eines Clients in PHP?

Wie erhalte ich zuverlässig die IP-Adresse eines Clients in PHP?

DDD
Freigeben: 2024-12-18 07:19:11
Original
302 Leute haben es durchsucht

How to Reliably Get a Client's IP Address in PHP?

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage