Max Mind 地理定位异常

Posted

技术标签:

【中文标题】Max Mind 地理定位异常【英文标题】:Max Mind Geolocation anomalies 【发布时间】: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 连接?

没有。为确保手机和桌面查看相同的内容:

    我的网站明确查看 IP 以获取位置 - 我没有利用浏览器位置服务,它可能使用多种方法来确定您的位置。

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

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

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

【问题讨论】:

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

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

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

【讨论】:

桌面在公司网络上。手机在蜂窝网络上。但是我检查了我的手机 ip,然后在桌面上欺骗了那个 ip。 您可以尝试其他网站吗?去隐身并尝试谷歌地图。根据自动更正建议查看您所在的位置。 谷歌地图很准,但是用的不是你的ip吗? Google 地图有时会使用您的无线接入点来确定您的位置 bb

以上是关于Max Mind 地理定位异常的主要内容,如果未能解决你的问题,请参考以下文章

ionic2:浏览器中的地理定位失败并出现错误:异常:未捕获(承诺中):错误

地理定位器挂在 WP8 上,在 8.1 上工作?

“原生”地理定位与“基于PhoneGap”的地理定位功能

W3C 地理定位 API 没有错误 没有期望也没有结果

地理定位移动测试,无需 https 即可进行网络地理定位

使用谷歌地图地理定位 api 进行准确的地理定位