J'ai un site Web espagnol et je n'autorise pas les personnes de pays non européens à s'inscrire et à se connecter.
Il y a quelque temps, j'ai commencé à recevoir des messages d'utilisateurs qui ne pouvaient pas se connecter. Lorsque je demande leur adresse IP, ils disent quelque chose comme: 66.249.93.202. C'est l'adresse IP de Google. Comment l'obtiennent-ils dans leurs téléphones portables? Que doivent-ils faire pour utiliser leur véritable adresse IP?
Ce que vous voyez, c'est l'adresse proxy de Google.
Les utilisateurs mobiles avec un navigateur chrome (soit Android ou iOS) qui ont activé les fonctionnalités de gestion de la bande passante seront souvent considérés comme utilisant un de ces adresses en tant que demandeur comme décrit ici .
En substance, les données que vous diffusez sont demandées par le proxy de compression de données Google, optimized
et renvoyées à l'utilisateur final.
Ce qu'ils doivent faire pour utiliser leur véritable adresse IP.
Ils ne devraient rien faire différemment.
Vous pouvez vérifier le x-forwarded-for
en-tête comme expliqué dans la documentation précédemment liée.
Ils utilisent probablement le proxy de compression de données Google ( https://developer.chrome.com/multidevice/data-compression ).
Et pour répondre à votre question (depuis la même page):
En tant que propriétaire de site, comment puis-je effectuer le géo-ciblage IP?
L'adresse IP de l'appareil mobile est transmise au serveur de destination via l'en-tête X-Forwarded-For. Les propriétaires de sites doivent vérifier cet en-tête pour déterminer correctement l'emplacement de l'utilisateur en fonction de l'adresse IP du client.
Vous pouvez obtenir l'adresse IP de l'utilisateur directement si vous servez simplement le site via HTTPS.
Vous devriez probablement le faire de toute façon - d'autant plus que vous avez mentionné que ce sont des pages de connexion et d'inscription.
Citant de la page Proxy de compression de données mentionnée dans d'autres réponses:
Mon trafic sécurisé est-il optimisé par le proxy de compression?
Non, le proxy de compression de données fonctionne sur le trafic non crypté: les requêtes HTTPS sont envoyées directement de l'appareil mobile au serveur de destination.
Peut-être que ces utilisateurs utilisent Chrome (mobile) avec proxy de compression de données ( https://developer.chrome.com/multidevice/data-compression )
Vous pouvez utiliser X-Forwarded-For
En-tête HTTP pour géolocaliser l'utilisateur en fonction de l'IP de l'utilisateur d'origine (voir FAQ)
J'ai le même problème. Mais je n'ai pas obtenu de véritable IP dans X-Forwarded-For
J'ai activé l'économiseur de données mais l'index X-Forwarded-For n'est pas défini sur les informations d'en-tête. J'ai également vérifié l'index HTTP_X_REAL_IP. Il est également défini avec l'adresse IP de Google.
Enfin, j'ai trouvé l'IP correcte dans la valeur d'index HTTP_FORWARDED
En tant que for=203.192.231.124
echo $_SERVER['HTTP_FORWARDED']
Il suffit donc de supprimer le texte for=
De la valeur et vous obtiendrez l'IP.
$ip = str_replace('for=','', $_SERVER['HTTP_FORWARDED']);