Max Mind Geolocation异常

时间:2017-09-21 21:43:10

标签: c# geolocation maxmind

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

  • 我使用X-Forwarded-For标头
  • 进行地理定位
  • 我的手机找到了我的邮政编码18036,大约50英里 关闭。
  • 我使用IPv4 / IPv6双栈测试在手机上查找IP地址
  • 在桌面上使用浏览器扩展程序,我将X-Forwarded-For标头设置为相同的IP地址
  • 桌面让我在19428年,这仍然是错误的,但很多 更接近纠正

为什么会有区别?

以下是我执行查询的方式:

var ip = httpContext.Request.Headers["X-Forwarded-For"];

CityResponse cityResponse;
using (_dbReader = new DatabaseReader(fullPath, FileAccessMode.Memory))
{
    cityResponse = _dbReader.City(ip);
}

更新

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

没有。确保手机和桌面看到相同的东西:

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

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

  3. 在我的手机上找到后,我使用浏览器中的“我的IP”来重新获取手机的IP地址

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

    < / LI>

1 个答案:

答案 0 :(得分:0)

如果您使用Wifi,并且与计算机位于同一网络上,则不会有任何差异,因为公共IP地址(WAN IP地址)将是相同的。

如果您的手机所在的网络不在您的计算机所在的网络上,则无法确定您将被分配到哪个ISP(在给定时间)以及哪个IP地址已分配给您的手机。如果蜂窝电话塔发生故障或过载,您的连接将是