Lors de la récupération de l'adresse IP d'un utilisateur à l'aide de PHP, plusieurs variables de serveur sont disponibles à prendre en compte. Bien qu'aucune méthode ne soit infaillible, cet article explore l'approche la plus précise basée sur ces variables.
Contexte
Le tableau $_SERVER contient de nombreux en-têtes qui fournissent potentiellement des informations sur l'adresse IP. . Cependant, la fiabilité et la précision de ces en-têtes peuvent varier en fonction des configurations de proxy et des topologies de réseau.
Méthodes couramment utilisées
Traditionnellement, la séquence suivante a été utilisée pour obtenir l'adresse IP d'un utilisateur :
Approche optimisée
Pour améliorer la précision et les performances, cette séquence a été optimisée comme suit :
function get_ip_address() { $headers = ['HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR']; foreach ($headers as $header) { if (isset($_SERVER[$header]) && ($ip = trim($_SERVER[$header]))) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { return $ip; } } } return null; }
Attention
Bien que cette approche récupère l'adresse IP des utilisateurs derrière la plupart des proxys, il est important de remarque :
Supplémentaire Notes
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!