Cela ne s'applique généralement pas aux connexions de localhost mais vous devez prendre en compte les proxies. Si l'extrémité distante utilise un proxy HTTP, $_SERVER['REMOTE_ADDR']
contiendra l'adresse IP de ce proxy plutôt que l'adresse IP du client lui-même.
Cependant, si elle est un proxy qui a des paramètres de confidentialité désactivé, vous pouvez avoir une chance d'obtenir IP du client en utilisant l'extrait suivant:
// will be set by the proxy if no privacy is enabled:
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if(isset($_SERVER['REMOTE_ADDR'])) {
return $_SERVER['REMOTE_ADDR'];
}
Mais si votre client utilise un proxy HTTP avec confidentialité activé, alors vous n'aurez pas la chance d'obtenir l'IP des clients.
Conseil de sécurité (@deceze merci) Notez que si vous comptez sur l'en-tête HTTP_X_FORWARDED_FOR
, il sera facile pour les attaquants d'usurper leur propriété intellectuelle. Bien que cela soit possible en utilisant d'autres techniques, il sera très facile d'utiliser l'en-tête HTTP_X_FORWARDED_FOR
. Tu étais prévenu. Mais de toute façon une application web ne devrait jamais utiliser les informations IP pour la sécurité, donc c'est juste une note de côté
C'est assez fiable pour ça, oui. Et pas besoin de clarifier, nous avons compris;) –