Appengine 位置标头在啥基础上告诉位置?

Posted

技术标签:

【中文标题】Appengine 位置标头在啥基础上告诉位置?【英文标题】:On what basis does the Appengine location headers tell the location?Appengine 位置标头在什么基础上告诉位置? 【发布时间】:2012-10-28 14:48:22 【问题描述】:

我在 Google Appengine 上托管了我的 Web 应用程序。有时我需要知道访客的位置。所以我一直在使用谷歌提供的请求头:

        String visitorCountry = request.getHeader("X-AppEngine-Country");
        String visitorRegion = request.getHeader("X-AppEngine-Region");       
        String visitorCity = request.getHeader("X-AppEngine-City");
        String visitorLatLong = request.getHeader("X-AppEngine-CityLatLong");

他们从来没有准确的位置,我猜它告诉我 ISP 的位置。 Google Appengine 的请求标头在什么基础上起作用?它主要是在客户端随请求发送的 IP 地址上吗?

这里是header docs 供参考。

【问题讨论】:

developers.google.com/appengine/docs/python/…。我认为很难准确定位,因为 ISP 控制着 IP 指向的位置。好问题。 @jmort253 其实我想知道这与 html5 goelocation 功能有何不同 【参考方案1】:

人们可以去这里 - http://mylocationtest.appspot.com/ - 看看他们有什么位置信息。

对我来说,纬度/经度只是所列城市的名义中心 - 距我的实际位置约 20 公里。 ISP 是 Rogers Canada。

显然,有时国家/地区会以“ZZ”的形式出现。 http://code.google.com/p/googleappengine/issues/detail?id=5296

此 IP 地址信息通常与ASN 打包在一起。这会告诉您 ISP,并且正如上面提到的那样,只有他们才能说出他们的 IP 分配的位置。位置信息的准确性可能取决于 ISP。

(这不是问题的答案 - 只是进一步讨论 - 但它在评论中并没有真正起作用)。

【讨论】:

【参考方案2】:

根据我的经验,使用 HTML5 地理位置功能往往比基于 IP 的位置检测更准确。当您在支持 GPS 的设备上使用移动网站并且启用了高精度时,尤其如此。

查看这篇文章也可以很好地讨论这两种方法:Why HTML5 Geolocation?

【讨论】:

但问题是 Appengine 位置标头在什么基础上告诉位置? 文档说“App Engine 根据客户端的 IP 地址确定国家代码等”。正如 jmort253 提到的,ISP 控制 IP 指向的位置。

以上是关于Appengine 位置标头在啥基础上告诉位置?的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB的位置索引在啥单位?米?迈尔斯?

Oracle的日志文件存储在啥位置

MATLAB的快捷方式在啥位置?

postman 缓存在啥位置

安卓art虚拟机在啥位置

我在啥时候可以判断用户是不是选择不分享他们的位置?