Salut à tous.
Savez-vous pourquoi la commande ...... me retourne une ipv6 ?Code:$ip = $_SERVER["REMOTE_ADDR"];
Version imprimable
Salut à tous.
Savez-vous pourquoi la commande ...... me retourne une ipv6 ?Code:$ip = $_SERVER["REMOTE_ADDR"];
Parce que l'utilisateur distant est en ip v6
OK :oops:
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 ?
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.
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 :
(les valeurs ci-dessus sont bidons)Code:
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 } }
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 ?
Si j'utilise whatismyip de chez moi, ça me donne not detected pour l'ipV6, je suis en ipv4.Citation:
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 ?
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.
Merci pour ces explications éclairées.
:D:D