Maison >développement back-end >tutoriel php >Comment obtenir l'adresse IP réelle du visiteur lors de l'utilisation de proxys ?

Comment obtenir l'adresse IP réelle du visiteur lors de l'utilisation de proxys ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 02:56:01877parcourir

How to Get the Real Visitor IP Address When Using Proxies?

Comment récupérer l'adresse IP authentique du visiteur

Lors de la tentative d'obtention de l'adresse IP d'un visiteur à l'aide du code PHP par défaut , il se peut qu'il ne récupère pas l'adresse IP réelle lorsqu'un proxy est utilisé. Cet article vise à résoudre ce problème en fournissant une solution robuste.

Le code PHP fourni répond efficacement à ce défi :

<?PHP

function getUserIP()
{
    // Handle CloudFlare network's IP masking
    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 IP address [Ex: 177.87.193.134]


?>

Ce code vérifie méthodiquement l'adresse IP du visiteur à l'aide de divers en-têtes, en tenant compte de l'utilisation potentielle des proxys, y compris ceux employés par CloudFlare. Il filtre méticuleusement les adresses IP récupérées pour fournir la représentation la plus précise de la véritable adresse IP du visiteur.

En mettant en œuvre ce code, vous pouvez vous assurer que vous obtenez systématiquement les adresses IP authentiques de vos visiteurs, qu'ils soient ou non. utilisent ou non des proxys.

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!

Déclaration:
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