Position actuelle: Accueil> Derniers articles> Méthode pratique et exemples de code pour obtenir des adresses IP réelles en PHP

Méthode pratique et exemples de code pour obtenir des adresses IP réelles en PHP

gitbox 2025-08-10

Préface

Pendant le développement de PHP, l'obtention de l'adresse IP réelle du visiteur est une exigence commune. Cependant, en raison de l'environnement du réseau complexe, l'acquisition d'adresses IP est souvent affectée par des facteurs tels que les serveurs proxy et l'équilibrage de la charge. Cet article explorera diverses façons d'obtenir une véritable propriété intellectuelle et d'utiliser des exemples de code pour aider les développeurs à obtenir correctement l'IP client.

Obtenez des informations d'en-tête HTTP

L'en-tête de demande HTTP contient les informations IP du client et la variable la plus élémentaire est Remote_Addr , qui est utilisée pour enregistrer l'IP du client.

Obtenez la valeur de Remote_addr

 $ip = $_SERVER['REMOTE_ADDR'];
echo "IP Address: $ip";

Ce code peut sortir directement l'adresse IP du visiteur actuel, mais il convient de noter que la valeur de Remote_Addr peut être l'IP du serveur proxy ou de l'équilibreur de chargement, plutôt que la véritable IP du client.

Obtenez des informations d'en-tête à l'emprisonnement X

Pour résoudre les problèmes causés par le proxy, de nombreux serveurs de proxy ajouteront des en-têtes HTTP à forwardage X pour enregistrer le vrai Client IP.

 $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
echo "IP Address: $ip";

Cependant, tous les agents ne passeront pas cet en-tête et peuvent être forgés et ne peuvent donc pas être entièrement invoqués.

Utiliser la bibliothèque proxy pour améliorer la précision

Pour les environnements complexes, l'utilisation d'une bibliothèque de classe proxy PHP dédiée est un moyen efficace d'améliorer la précision de l'acquisition de l'IP. Ces bibliothèques de classe analyseront de manière approfondie diverses informations d'en-tête HTTP.

Utilisez CloudFlare pour obtenir une véritable adresse IP

Si le site Web est déployé sous le proxy CloudFlare, vous pouvez utiliser la bibliothèque de classe correspondante pour obtenir avec précision la vraie IP:

 require_once 'vendor/autoload.php';
use Cloudflare\IpRewrite;
$ipRewrite = new IpRewrite();
$ip = $ipRewrite->getIp();
echo "IP Address: $ip";

Cette bibliothèque garantit que l'adresse IP du client réel est obtenue en analysant les informations de l'en-tête spéciales de CloudFlare.

Utilisez une autre bibliothèque proxy pour obtenir une vraie propriété intellectuelle

En plus de CloudFlare, il existe d'autres bibliothèques proxy open source, telles que JShrink / Proxy-Test, qui peuvent aider à analyser une variété d'en-têtes HTTP et à obtenir avec précision IP:

 require_once 'vendor/autoload.php';
use JShrink\ProxyTest;
$proxyTest = new ProxyTest();
$ip = $proxyTest->getIp();
echo "IP Address: $ip";

Résumer

L'obtention de la véritable propriété intellectuelle des visiteurs est une exigence commune dans le développement de PHP. Il est simple de lire directement Remote_Addr , mais il n'est pas suffisamment précis dans un environnement proxy. L'utilisation de l'en-tête X-Forwarded ou l'utilisation de la bibliothèque d'agents professionnels peut efficacement améliorer la précision. Lorsque vous utilisez des adresses IP, vous devez également faire attention à la protection de la confidentialité des utilisateurs et à l'utilisation de ces informations de manière raisonnable et légalement.