我有一个网站使用MaxMind本地数据库根据IP地址对用户进行地理定位。我发现桌面上的结果与手机上的结果不同。例如:
为什么会有区别?
以下是我执行查询的方式:
var ip = httpContext.Request.Headers["X-Forwarded-For"];
CityResponse cityResponse;
using (_dbReader = new DatabaseReader(fullPath, FileAccessMode.Memory))
{
cityResponse = _dbReader.City(ip);
}
更新
您的手机是否连接到与桌面相同的WiFi?还是通过3G / 4G连接?
没有。确保手机和桌面看到相同的东西:
我的网站明确查看IP位置 - 我没有使用浏览器位置服务,这可能会使用各种方法来确定您的位置。
在手机上搜索时,我关闭了wifi,所以肯定是使用3G / 4G
在我的手机上找到后,我使用浏览器中的“我的IP”来重新获取手机的IP地址
我使用X-Forwarded-For标头在我的浏览器中欺骗手机的IP并确保我的网站正在查看该标头而不是实际的IP(这本来就是内部IP)
< / LI> 醇>答案 0 :(得分:0)
如果您使用Wifi,并且与计算机位于同一网络上,则不会有任何差异,因为公共IP地址(WAN IP地址)将是相同的。
如果您的手机所在的网络不在您的计算机所在的网络上,则无法确定您将被分配到哪个ISP(在给定时间)以及哪个IP地址已分配给您的手机。如果蜂窝电话塔发生故障或过载,您的连接将是