Comment obtenir l'adresse IP du client en PHP ?
Il existe des variables permettant de récupérer l'adresse IP du client. Les voici.
L'adresse IP du client peut être utilisée pour effectuer différents contrôles et garder une trace des connexions effectuées sur votre site. Vous devez cependant faire attention, car les variables contenant l'adresse IP peuvent être manipulées par le client.
La variable sur laquelle vous pouvez le plus compter est la variable $_SERVER['REMOTE_ADDR']. Dans la plupart des cas, cette variable contiendra l'adresse IP du client.
Si le client utilise un serveur proxy pour accéder à un proxy, le procédé pour récupérer l'adresse IP est plus compliqué. Certains serveurs proxy renseignent l'adresse IP dans un header http disponible dans la variable $_SERVER['HTTP_X_FORWARDED_FOR']. Cette variable n'est cependant pas toujours remplie, et elle peut être modifiée facilement par un utilisateur. Elle peut également contenir une adresse IP interne d'un réseau LAN situé derrière un serveur Proxy. La solution la plus simple est alors de stocker les 2 valeurs.
Si vous souhaitez stocker ces 2 valeurs en base de données, veillez à bien utiliser une chaîne de 45 caractères. Le protocole IPv6 se répand de plus en plus, et les adresses IPv6 peuvent aller jusqu'à 39 caractères. Il existe aussi une notation au format Ipv6 pour les adresses Ipv4, et cette notation peut créer des chaînes qui sont d'une longueur maximale de 45 caractères.