Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erhalte ich die echte Besucher-IP-Adresse, wenn Proxys verwendet werden?

Wie erhalte ich die echte Besucher-IP-Adresse, wenn Proxys verwendet werden?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 13:39:01786Durchsuche

How to Get the Real Visitor IP Address When Proxies Are in Use?

Abrufen der echten Besucher-IP-Adresse trotz Proxy-Nutzung

Der PHP-Code, der üblicherweise zum Abrufen der IP-Adresse eines Besuchers verwendet wird, ist:

<code class="php"><?php echo $_SERVER['REMOTE_ADDR']; ?></code>

Allerdings gelingt es dieser Methode nicht, die wahre IP zu erfassen, wenn Proxys im Spiel sind. Auf der Suche nach einer Lösung für dieses Problem wollen wir uns mit einem alternativen Ansatz befassen.

Benutzerdefinierte PHP-Funktion zur IP-Ermittlung

Der bereitgestellte PHP-Code bietet eine umfassende Lösung unter Berücksichtigung von CloudFlare-Verbindungen und verschiedene andere Faktoren:

<code class="php">function getUserIP()
{
    // Handle CloudFlare connections
    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();</code>

Dieser Code weist die IP-Adresse der Variablen $user_ip zu, die dann nach Bedarf in Ihrem PHP-Skript verwendet werden kann.

Das obige ist der detaillierte Inhalt vonWie erhalte ich die echte Besucher-IP-Adresse, wenn Proxys verwendet werden?. 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