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

怪我咯
Libérer: 2023-03-12 19:18:02
original
1169 Les gens l'ont consulté

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

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!

Étiquettes associées:
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