Récupération de l'adresse IP réelle du visiteur malgré l'utilisation d'un proxy
Le code PHP couramment utilisé pour obtenir l'adresse IP d'un visiteur est :
<code class="php"><?php echo $_SERVER['REMOTE_ADDR']; ?></code>
Cependant, cette méthode ne parvient pas à capturer la véritable adresse IP lorsque des proxys sont en jeu. À la recherche d'une solution à ce problème, examinons une approche alternative.
Fonction PHP personnalisée pour la détermination IP
Le code PHP fourni offre une solution complète, prenant en compte les connexions CloudFlare et divers autres facteurs :
<code class="php">function getUserIP() { // Handle CloudFlare connections if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; $_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; } $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; if(filter_var($client, FILTER_VALIDATE_IP)) { $ip = $client; } elseif(filter_var($forward, FILTER_VALIDATE_IP)) { $ip = $forward; } else { $ip = $remote; } return $ip; } $user_ip = getUserIP();</code>
Ce code attribue l'adresse IP à la variable $user_ip, qui peut ensuite être utilisée selon les besoins dans votre script PHP.
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!