Accueil > Tutoriels pour Webmasters > [PHP] Récupérer la véritable adresse IP d'un visiteur

[PHP] Récupérer la véritable adresse IP d'un visiteur

En PHP il est fort utile de récupérer l'adresse IP du visiteur. Il est par exemple recommandé de stocker l'adresse IP des internautes à chaque fois qu'ils laissent un message (ça peut être demandé s'ils disent des propos injurieux). Cet article explique comment récupérer la véritable adresse IP, même si l'utilisateur utilise un proxy.

Mauvaise méthode

La variable $_SERVER contient de nombreuses informations utiles, dont l'adresse IP du visiteur. La solution simple pour récupérer l'adresse IP consiste simplement à récupérer la valeur avec "REMOTE_ADDR", à l'aide du code ci-dessous:

  1. <?php
  2. $adresse_ip = $_SERVER['REMOTE_ADDR'];
  3. ?>

Malheureusement, si le visiteur est connecté derrière un proxy, cette variable retournera l'IP du proxy.

Fonction complète

La fonction ci-dessous est plus complète et permet d'obtenir l'IP réelle du visiteur.

  1. <?php
  2. /**
  3.  * Récupérer la véritable adresse IP d'un visiteur
  4.  */
  5. function get_ip() {
  6. // IP si internet partagé
  7. if (isset($_SERVER['HTTP_CLIENT_IP'])) {
  8. return $_SERVER['HTTP_CLIENT_IP'];
  9. }
  10. // IP derrière un proxy
  11. elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  12. return $_SERVER['HTTP_X_FORWARDED_FOR'];
  13. }
  14. // Sinon : IP normale
  15. else {
  16. return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
  17. }
  18. }
  19. ?>

Seule limite, si l'utilisateur passe par un proxy anonyme la fonction retournera l'adresse IP du proxy.

Ensuite, pour afficher cette fonction il faut utiliser un "echo".

  1. <?php
  2. // Afficher l'adresse IP
  3. echo 'Adresse IP du visiteur : '.get_ip();
  4. ?>

Utilité

L'utilisation de cette fonction peut être très courante. Voici une liste non-exhaustive sur l'utilisation de cette fonction:

  • A chaque enregistrement de messages. S'il y a eu des propos injurieux ou illégaux il serait pratique d'avoir l'adresse IP du visiteur pour retrouver la personne
  • Lors de la validation de conditions générales d'utilisations ou de ventes
  • Lors de l'échec pour se connecter à un compte membre. Cela permet d'améliorer la sécurité et de se rendre compte si une même adresse IP essaie de se connecter à plusieurs comptes
  • Pour géolocaliser un internaute
  • Pour restreindre l'accès d'un site à certaines adresses IP
  • Pour faire des statistiques sur l'accès à un site

Ressources complémentaires