4

我在 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 地址上吗?

这是供参考的标头文档

4

2 回答 2

2

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

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

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

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

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

于 2013-02-02T18:05:40.870 回答
1

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

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

于 2012-10-29T02:52:05.007 回答