IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Connaitre l'IP du client [PHP 5.6]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut Connaitre l'IP du client
    Salut à tous.

    Savez-vous pourquoi la commande ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ip = $_SERVER["REMOTE_ADDR"];
    ... me retourne une ipv6 ?

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 641
    Points : 43 631
    Points
    43 631
    Par défaut
    Parce que l'utilisateur distant est en ip v6
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    OK

    Comment alors des sites comme icanhazip.com ou myip.dnsomatic.com ou encore le celebre www.whatismyip.com font-ils pour me trouver l'IPV4 de ce même client ?

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 641
    Points : 43 631
    Points
    43 631
    Par défaut
    Quand tu te connecte à un serveur, tu lui envoie ton ip pour qu'il puisse répondre. Dans ce cas c'est l'ip WAN de ta box. Dans un paquet tcp/ip tu as une ip source et une ip destination.

    Le champ REMOTE_ADDR est un champ envoyé par ton navigateur en même temps quand il demande une page web à un site. Ca fait partie des en-têtes envoyé par ton navigateur.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    J'ai bien compris mais ça ne répond pas à ma question : comment connaître alors l'ipv4 ? Quelles techniques utilise whatismyip.com qui me renvoie l'ipv6 ET l'ipv4 ?
    Je voudrais faire un script php qui interdit la connection à toutes adresses qui ne provient pas du territoire français. J'utilise un service payant (www.iphunter.info) qui me retourne un objet JSON de cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {
        "status": "success",
        "data": {
            "ip": "82.47.121.42",
            "ip_num": 1310241757,
            "country_code": "FR",
            "country_name": "France",
            "city": "Mulhouse",
            "isp": "ProXad/Free SAS",
            "block": 0
        }
    }
    (les valeurs ci-dessus sont bidons)

    Mais pour que le service fonctionne, je dois renseigner l'ipv4 du client. L'Ipv6 renvoyé par REMOTE_ADDR provoque l'erreur Bad Ip range (Only Ipv4)
    Chaque connection possède une IPV4 et une IPV6 (si l'option est activée). Alors quel est le moyen de connaître cette ipv4 ?

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 641
    Points : 43 631
    Points
    43 631
    Par défaut
    Chaque connection possède une IPV4 et une IPV6 (si l'option est activée). Alors quel est le moyen de connaître cette ipv4 ?
    Si j'utilise whatismyip de chez moi, ça me donne not detected pour l'ipV6, je suis en ipv4.

    Toutes les boxes ou routeurs n'ont pas forcément une ipv4 et une ipv6, et je pense que c'est plutôt soit l'un soit l'autre (ça va dépndre de l'infra de ton opérateur, il peut y avoir une dual stack mais de toute façon si tu emet depuis la stack v4, on te répondra en v4 et vice-versa). Par contre ton opérateur peut avoir une correspondance entre ses blocs ipv4 et ipv6 (supposition) qui fait que si tu actives l'ipv6, ton nom d'hôte est retrouvable.

    Je fais l’impasse sur le champ REMOTE_ATTR qui peut indiquer une valeur non fiable.

    Si je me connectes sur ton serveur/site web,que j'ai une ip V6 et une v4, je vais me connecter avec l'une ou l'autre, pas les deux.

    Si tu souhaites interdire des IP non françaises, il te faut interdire les plages ipv4 et ipv6 affectées à des opérateurs hors de France. Mais saches qu'il suffit d'utiliser un VPN en passant par un serveur avec une ip française pour contourner.

    A savoir comment whatmyip peut connaitre le pays : c'est faisable avec le service whois qui permet d'obtenir le propriétaire d'une ip ou range d'ip

    Exemple, je connais l'IP avec laquelle tu as écrit ce message, avec cette IP et whois je connais le propriétaire de celle-ci et donc qui est ton opérateur : français.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 37
    Points : 29
    Points
    29
    Par défaut
    Merci pour ces explications éclairées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connaître la version du client Oracle installé
    Par awalter1 dans le forum Administration
    Réponses: 2
    Dernier message: 21/02/2012, 13h31
  2. Connaitre l'IP du client dans mon serveur
    Par st20085 dans le forum Services Web
    Réponses: 19
    Dernier message: 21/10/2009, 17h24
  3. connaitre l'IP du client a travers un NAT
    Par mamelouk dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 10/06/2008, 10h37
  4. [navigateur] Comment connaitre le navigateur du client?
    Par Ministar dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 24/07/2007, 21h45
  5. Connaitre l'OS du client
    Par moi&dev dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 09/05/2007, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo