我有一个西班牙网站,不允许非欧洲国家的人注册和登录。
前段时间,我开始收到无法登录的用户的消息。当我询问他们的 IP 地址时,他们给出的信息是:66.249.93.202。这是 Google 的 IP 地址。他们如何在手机上获取该地址?他们要做什么才能使用他们的真实 IP 地址?
答案1
您看到的是 Google 代理地址。
使用 Chrome 浏览器(Android 或 iOS)并开启带宽管理功能的移动用户通常会被视为使用其中一个地址作为请求者描述在这里。
本质上,您提供的数据是由 Google 数据压缩代理请求的,optimized
然后发送回最终用户。
他们必须做什么才能使用他们的真实 IP 地址。
他们不应该做任何不同的事情。您可以按照说明
检查标题x-forwarded-for
在之前链接的文档中。
答案2
他们可能正在使用 Google 数据压缩代理(https://developer.chrome.com/multidevice/data-compression)。
回答你的问题(来自同一页面):
作为网站所有者,我该如何进行 IP 地理定位?
移动设备的 IP 地址通过 X-Forwarded-For 标头转发到目标服务器。网站所有者应检查此标头,以便根据客户端的 IP 地址正确确定用户的位置。
答案3
你可以直接获取用户的 IP 地址,方法是只需通过 HTTPS 为网站提供服务。
无论如何你都应该这么做- 特别是因为您提到这些是登录和注册页面。
引用其他答案中提到的数据压缩代理页面:
我的安全流量是否通过压缩代理进行了优化?
不,数据压缩代理对非加密流量进行操作:HTTPS 请求直接从移动设备发送到目标服务器。
答案4
我遇到了同样的问题。但我没有获得真实 IP,因为 X-Forwarded-For
我启用了数据保护程序,但标头信息中未设置 X-Forwarded-For 索引。我还检查了 HTTP_X_REAL_IP 索引。它也使用 Google IP 地址进行设置。
最后我在索引值中找到了正确的HTTP_FORWARDED
IPfor=203.192.231.124
echo $_SERVER['HTTP_FORWARDED']
因此,只需从值中删除文本for=
即可获得 IP。
$ip = str_replace('for=','', $_SERVER['HTTP_FORWARDED']);