Comment identifier la véritable adresse IP derrière les serveurs proxy ?

Patricia Arquette
Libérer: 2024-11-05 03:18:02
original
290 Les gens l'ont consulté

How to Identify the True IP Address Behind Proxy Servers?

Identification de la véritable adresse IP derrière les serveurs proxy

Récupération de l'adresse IP d'un visiteur à l'aide de méthodes PHP standard telles que $_SERVER['REMOTE_ADDR'] peut ne pas fournir d'informations précises si le visiteur accède à votre site Web via un serveur proxy.

Pour résoudre ce problème, envisagez d'utiliser le code PHP suivant :

<code class="php">function getUserIP()
{
    // Obtain the IP address of the visitor behind CloudFlare
    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'];

    $ip = null;

    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 IP address [Ex: 177.87.193.134]</code>
Copier après la connexion

Cette fonction vérifie d'abord si le le visiteur utilise CloudFlare, un service proxy populaire. Si tel est le cas, il récupère la véritable adresse IP à l'aide de l'en-tête HTTP_CF_CONNECTING_IP.

Ensuite, il considère trois sources IP potentielles : HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR et REMOTE_ADDR. Il valide chaque adresse IP et sélectionne la plus fiable.

En adoptant cette approche, vous pouvez obtenir efficacement l'adresse IP réelle de vos visiteurs, même lorsqu'ils se trouvent derrière des serveurs proxy.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!