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

Comment obtenir de manière fiable l'adresse IP d'un client en PHP ?

DDD
Libérer: 2024-12-18 07:19:11
original
303 Les gens l'ont consulté

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

Obtention de l'adresse IP du client en PHP

Avant d'explorer les méthodes pour obtenir l'adresse IP du client, il est crucial de comprendre pourquoi utiliser uniquement $_SERVER[ 'REMOTE_ADDR'] peut conduire à des résultats incorrects. Les proxys, pare-feu ou autres intermédiaires peuvent modifier l'adresse IP d'origine.

Pour résoudre ce problème, voici des approches alternatives :

Utiliser GETENV()

La fonction getenv() nous permet d'accéder aux variables d'environnement. La fonction suivante l'utilise :

// Function to get client IP address
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');
    //... (Other conditions omitted for brevity)
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
Copier après la connexion

Utilisation de $_SERVER

PHP fournit également le superglobal $_SERVER pour accéder aux variables du serveur. Voici une implémentation similaire qui l'utilise :

// Function to get client IP address
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'];
    //... (Other conditions omitted for brevity)
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
Copier après la connexion

Ces deux fonctions prennent en compte plusieurs variables de serveur pour obtenir l'adresse IP la plus précise disponible. Ils donnent la priorité aux variables telles que HTTP_CLIENT_IP et HTTP_X_FORWARDED_FOR, qui offrent une plus grande fiabilité.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal