【问题标题】: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 供参考。

【问题讨论】:

标签: java google-app-engine jakarta-ee http-headers location


【解决方案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 指向的位置。
    猜你喜欢
    • 2012-10-11
    • 1970-01-01
    • 2014-02-26
    • 2014-01-05
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多