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 位置标头在啥基础上告诉位置?的主要内容,如果未能解决你的问题,请参考以下文章