Maison > développement back-end > tutoriel php > Comment obtenir la véritable adresse IP du visiteur derrière les proxys ?

Comment obtenir la véritable adresse IP du visiteur derrière les proxys ?

Barbara Streisand
Libérer: 2024-11-06 17:54:02
original
370 Les gens l'ont consulté

How to Get the Real Visitor IP Address Behind Proxies?

Obtenir les adresses IP de vrais visiteurs derrière les proxys

Dans les cas où les visiteurs utilisent des proxys, la méthode PHP standard $_SERVER['REMOTE_ADDR'] peut ne pas fournir l’adresse IP réelle du visiteur. Pour résoudre ce problème, envisagez d'utiliser le code PHP suivant :

<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>
Copier après la connexion

Ce code vérifie les réseaux CloudFlare et ajuste l'adresse IP en conséquence. Il examine ensuite HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR et REMOTE_ADDR dans cet ordre, en donnant la priorité aux adresses IP avec des formats valides. En implémentant ce code, vous pouvez obtenir la véritable adresse IP du visiteur, même lorsqu'il se trouve derrière un 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