Maison  >  Article  >  développement back-end  >  Comment obtenir la véritable adresse IP du client utilisateur en php

Comment obtenir la véritable adresse IP du client utilisateur en php

怪我咯
怪我咯original
2017-07-05 10:57:471109parcourir

Certaines analyses d'idées pour obtenir la véritable adresse IP du client peuvent ne pas être correctes, mais au moins la précision est bien meilleure.

Le code est le suivant :

function GetIP(){ 
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) 
$ip = getenv("HTTP_CLIENT_IP"); 
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); 
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) 
$ip = getenv("REMOTE_ADDR"); 
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) 
$ip = $_SERVER['REMOTE_ADDR']; 
else 
$ip = "unknown"; 
return($ip); 
}

regist=off problème
if ($register_globals!=1) {
@extrait($ _SERVER, EXTR_SKIP);
@extract($_COOKIE, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP); _POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP); mieux parmi eux Comprenez, le
php manuel
indique qu'il s'agit d'une variable prédéterminée ; quant à HTTP_x_FORWARDED_FOR, j'ai trouvé des informations sur Internet et j'ai dit ceci
Utilisez $_SERVER["REMOTE_ADDR"] en PHP pour obtenir it L'adresse IP du client, mais si le client utilise un serveur proxy pour accéder, l'adresse IP obtenue est l'adresse IP du serveur proxy, pas la véritable adresse IP du client. Pour obtenir la véritable adresse IP du client via un serveur proxy, utilisez $_SERVER["HTTP_X_FORWARDED_FOR"] pour la lire. Cependant, il convient de noter que tous les serveurs proxy ne peuvent pas utiliser $_SERVER["HTTP_X_FORWARDED_FOR"] pour lire la véritable adresse IP du client. Certaines des adresses IP lues par cette méthode sont toujours l'adresse IP du serveur proxy.
Quant à HTTP_CLIENT_IP, un message disait
'HTTP_CLIENT_IP' est l'IP de l'utilisateur et 'HTTP_X_FORWARDED_FOR' est l'IP du proxy
Ces messages d'en-tête IP peuvent ne pas être disponibles (en raison de différents navigateurs Réseau différent les appareils peuvent envoyer différents messages d'en-tête IP). PHP essaie donc de juger chaque message d'en-tête IP, et s'il y en a un, prenez-en un

.

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