Heim >Backend-Entwicklung >PHP-Tutorial >Wie erhalte ich die echte Besucher-IP-Adresse hinter Proxys?

Wie erhalte ich die echte Besucher-IP-Adresse hinter Proxys?

Barbara Streisand
Barbara StreisandOriginal
2024-11-06 17:54:02344Durchsuche

How to Get the Real Visitor IP Address Behind Proxies?

Echte Besucher-IPs hinter Proxys abrufen

In Fällen, in denen Besucher Proxys verwenden, ist dies bei der Standard-PHP-Methode $_SERVER['REMOTE_ADDR'] möglicherweise nicht der Fall Geben Sie die tatsächliche IP-Adresse des Besuchers an. Um dieses Problem zu beheben, sollten Sie den folgenden PHP-Code verwenden:

<code class="php">function getUserIP()
{
    // Handle CloudFlare network
    if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
        $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
        $_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
    }

    $client  = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote  = $_SERVER['REMOTE_ADDR'];

    if(filter_var($client, FILTER_VALIDATE_IP))
    {
        $ip = $client;
    }
    elseif(filter_var($forward, FILTER_VALIDATE_IP))
    {
        $ip = $forward;
    }
    else
    {
        $ip = $remote;
    }

    return $ip;
}

$user_ip = getUserIP();

echo $user_ip; // Output real visitor IP address</code>

Dieser Code sucht nach CloudFlare-Netzwerken und passt die IP-Adresse entsprechend an. Anschließend werden HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR und REMOTE_ADDR in dieser Reihenfolge untersucht und IPs mit gültigen Formaten priorisiert. Durch die Implementierung dieses Codes können Sie die echte IP-Adresse des Besuchers erhalten, selbst wenn dieser sich hinter einem Proxy befindet.

Das obige ist der detaillierte Inhalt vonWie erhalte ich die echte Besucher-IP-Adresse hinter Proxys?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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