【问题标题】:geolocation of an IP address while using GAE sdk or otherwise使用 GAE sdk 或其他方式时 IP 地址的地理位置
【发布时间】:2012-09-05 09:41:22
【问题描述】:

我在 google appengine (GAE) 上托管了我的网络应用程序。 GAE sdk 是否提供任何方法来查找 IP 的地理位置?如果是,请建议我该怎么做。

【问题讨论】:

    标签: java google-app-engine ip-geolocation


    【解决方案1】:

    是的,您可以使用请求标头来获取 IP 的地理位置。

    https://cloud.google.com/appengine/docs/standard/go/reference/request-response-headers#app_engine-specific_headers

    X-AppEngine-Country 请求来自的国家,作为 ISO 3166-1 alpha-2 国家代码。 App Engine 从 客户端的 IP 地址。

    其他对位置有用的标题是 X-AppEngine-RegionX-AppEngine-CityX-AppEngine-CityLatLong

    我认为这在本地 sdk 上运行时不会返回有效值。

    【讨论】:

    • 它告诉了哪个城市? ISP 之一?
    • 因为它没有告诉我
    • 根据 IP 地址获取位置并不总是准确的。如果您想要更准确的内容,请使用 html5 地理位置 api(并回退到 appengine)查看此post
    • 另外,请查看一些替代服务,例如 ip-geo.appspot.com,每天拨打少于 10 000 次免费,可能会满足您的要求。
    【解决方案2】:

    您的问题并不清楚您是想确定向您的 GAE 应用程序发出的 http 请求的位置,还是希望 GAE 上的服务能够为您提供任何 IP 地址的地理位置。

    GAE 支持某些包含地理位置信息的 HTTP 标头,例如国家、城市、地区和 IP 地址。更多详情请参考这里的两篇文章:

    上面的文章讨论了像

    这样的标题
    • X-AppEngine-国家
    • X-AppEngine-Region
    • X-AppEngine-City
    • X-AppEngine-CityLatLong

    如果您只是在寻找一种服务来提供基于 IP 的地理位置详细信息,那么 GAE 不提供该服务。有各种可用的外部 Web 服务,例如上述答案之一。

    【讨论】:

      猜你喜欢
      • 2015-12-24
      • 2017-04-30
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      相关资源
      最近更新 更多