Récuperer l'ip du visiteur
La fonction getRealIPAddress() renvoie l'adresse IP la plus sécurisée pour le visiteur en cours. Il n'existe pas de certitude ou de risque nul, si l'utilisateur passe par un proxy anonyme, on obtient l'adresse IP du proxy, aucune information sur le visiteur réel ne peut être trouvée./**
* Vérifier la validité d'une adresse IP, une adresse locale est incorrecte
* @param string adresse IP
* @return boolean validité d'une adresse IP
*/
function is_ValidIP($ip) {
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {
return true;
}
else {
return false;
}
}
/**
* Retrouver l'adresse IP du visiteur, test d'un partage de connection, d'un proxy
* @return String l'adresse IP la + sure
*/
function getRealIPAddress() {
//Connection internet partagée ou ISP IP
if (!empty($_SERVER['HTTP_CLIENT_IP']) && is_ValidIP($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
}
//Connection derrière un routeur
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
//Extraire la première adresse valide
$iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($iplist as $ip) {
if (is_ValidIP($ip)) {
return $ip;
}
}
}
//Trouver le proxy utlisé
if (!empty($_SERVER['HTTP_X_FORWARDED']) && is_ValidIP($_SERVER['HTTP_X_FORWARDED'])) {
return $_SERVER['HTTP_X_FORWARDED'];
}
if (!empty($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']) && is_ValidIP($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])) {
return $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
}
if (!empty($_SERVER['HTTP_FORWARDED_FOR']) && is_ValidIP($_SERVER['HTTP_FORWARDED_FOR'])) {
return $_SERVER['HTTP_FORWARDED_FOR'];
}
if (!empty($_SERVER['HTTP_FORWARDED']) && is_ValidIPp($_SERVER['HTTP_FORWARDED'])) {
return $_SERVER['HTTP_FORWARDED'];
}
//L'adresse IP par défaut
return $_SERVER['REMOTE_ADDR'];
}
Lorsque l'adresse IP contenu dans $_SERVER['REMOTE_ADDR'] est différence de l'adresse trouvée par la fonction getRealIPAddress(), la connexion internet passe par une passerelle. Dans ce cas, il peut s'agir d'un proxy, d'un VPN ou d'un autre routeur.
Attention, ce n'est pas la peine de s'alarmer et de craindre une faille de sécurité. L'usage d'un proxy est aussi une pratique courante, par exemple dans le cadre d'une connexion par appareil mobile.
Pour tester son identité sur internet, je vous conseille de passer par l'outil Mon Adresse IP qui en plus de la connexion effectue des tests sur le navigateur internet et l'ordinateur.