【问题标题】:Max Mind Geolocation anomaliesMax Mind 地理定位异常
【发布时间】:2017-09-21 21:43:10
【问题描述】:

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

  • 我正在使用 X-Forwarded-For 标头进行地理定位
  • 我的手机在邮政编码 18036 中找到我,大约 50 英里 关闭。
  • 我使用 IPv4/IPv6 Dual-Stack Test 在手机上查找 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)

【问题讨论】:

  • 您的手机是否与您的桌面连接到同一个 WiFi?还是通过 3G/4G 连接?
  • 对否决票的任何解释?老实说想知道所以我不会再这样做了。
  • 我投了反对票,因为我问了一个你似乎没有回答的问题。 您确实有点在针对以下答案的评论中回答了该问题,但您没有使用该信息更新您的帖子 - 以便其他人可以轻松找到。

标签: c# geolocation maxmind


【解决方案1】:

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

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

【讨论】:

  • 桌面在公司网络上。手机在蜂窝网络上。但是我检查了我的手机 ip,然后在桌面上欺骗了那个 ip。
  • 您可以尝试其他网站吗?去隐身并尝试谷歌地图。根据自动更正建议查看您所在的位置。
  • 谷歌地图很准,但是用的不是你的ip吗?
  • Google 地图有时会使用您的无线接入点来确定您的位置 bb
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2019-04-05
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多