Maison > développement back-end > tutoriel php > Comment récupérer de manière fiable l'adresse IP d'un client en PHP ?

Comment récupérer de manière fiable l'adresse IP d'un client en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-06 14:10:16
original
986 Les gens l'ont consulté

How to Reliably Retrieve a Client's IP Address in PHP?

Récupérer l'adresse IP du client en PHP

Le superglobal $_SERVER de PHP fournit une méthode pour récupérer l'adresse IP des visiteurs du site Web. Cependant, des adresses IP incorrectes peuvent être renvoyées en utilisant l'approche conventionnelle $_SERVER['REMOTE_ADDR']. Cet écart peut être attribué à plusieurs facteurs, notamment les serveurs proxy et les équilibreurs de charge.

Pour obtenir une adresse IP précise, envisagez d'autres variables de serveur. Les deux fonctions suivantes sont interchangeables et montrent comment procéder :

Utilisation de getenv() :

function get_client_ip() {
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP'))
        $ipaddress = getenv('HTTP_CLIENT_IP');
    else if(getenv('HTTP_X_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    else if(getenv('HTTP_X_FORWARDED'))
        $ipaddress = getenv('HTTP_X_FORWARDED');
    else if(getenv('HTTP_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_FORWARDED_FOR');
    else if(getenv('HTTP_FORWARDED'))
       $ipaddress = getenv('HTTP_FORWARDED');
    else if(getenv('REMOTE_ADDR'))
        $ipaddress = getenv('REMOTE_ADDR');
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
Copier après la connexion

Utilisation de $_SERVER :

function get_client_ip() {
    $ipaddress = '';
    if (isset($_SERVER['HTTP_CLIENT_IP']))
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_X_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if(isset($_SERVER['REMOTE_ADDR']))
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
Copier après la connexion

Ces fonctions donnent la priorité à l'option d'adresse IP la plus fiable disponible dans les variables du serveur, garantissant une représentation précise de l'adresse IP du client. adresse.

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