Max Mind地理位置异常



我有一个网站,可以使用MaxMind本地数据库根据IP地址对用户进行地理位置。我发现桌面上的结果与手机时不同。例如:

  • 我正在使用X-Forwarded-For-for header进行地理位置
  • 我的手机在邮政编码18036中找到了我,大约50英里
  • 我使用ipv4/ipv6双堆栈测试在手机上查找IP地址
  • 使用桌面上的浏览器扩展程序,我将X-Forwhered-For-For-Forn标头设置为同一IP地址
  • 台式机将我放在19428年,这仍然是错误的,但是很多靠近正确

为什么有区别?

这是我进行查找的方式:

var ip = httpContext.Request.Headers["X-Forwarded-For"];
CityResponse cityResponse;
using (_dbReader = new DatabaseReader(fullPath, FileAccessMode.Memory))
{
    cityResponse = _dbReader.City(ip);
}

update

您的手机连接到与桌面相同的WiFi?还是在3G/4G上连接?

否。确保电话和桌面正在查看相同的内容:

  1. 我的网站明确查看了位置的IP-我没有利用浏览器位置服务,该服务可能会使用多种方法来确定您的位置。

  2. 在手机上搜索时,我关闭了wifi,因此肯定使用3G/4G

  3. 在手机上定位后,我使用浏览器中的"我的IP"检索了手机的IP地址

  4. 我使用X-Forwarded-For-For标头在浏览器中欺骗了手机的IP,并确保我的网站正在查看该标题,而不是实际IP(这本来是内部IP)

    <</p>

如果您使用的是WiFi,并且在与计算机同一网络上,则不会有任何区别,因为公共IP地址(WAN IP地址)将相同。p>如果您的手机在网络上以外的其他计算机,则无法(在给定时间)分配哪个ISP,并且将哪个IP地址分配给手机。如果蜂窝塔恰好被下载或超载,您的连接将为

最新更新