3

全部!

我需要确定当前用户城市。使用 HTML5 这不是问题。但我需要支持旧浏览器(leke 即 7,8)。首先,我想使用 IP 地址查找位置。但它不容易实现(我需要带有位置的实际数据库)。免费的网络服务没有提供我需要的信息。其中许多可以确定一个国家(但不是城市)。

我尝试使用http://www.geoplugin.net/并且该服务仅返回国家(作为和另一个免费)。我尝试使用带有 IP 的 CSV 数据库(但在互联网上我可以找到旧版本)。

您知道确定用户城市的免费方法吗?谢谢!

4

2 回答 2

1

一些较旧的浏览器确实支持以某种形式获取用户位置。回到 IE7/8 时代,一些不同的浏览器以不同的方式处理地理定位。这对开发人员来说是一种痛苦。我这辈子都不记得如何在 IE7/8 中执行此操作,但记得在某些时候为此编写了一个包装器库。现在大多数人使用包装库来处理所有不同的浏览器实现。Bing Maps V7 JavaScript 将所有新旧功能包装到其 API 中的一个通用 GeoLocationProvider 类中,如果您的站点中需要地图,这可能是一个选项:http: //msdn.microsoft.com/en-us/library/ hh125833.aspx

于 2014-09-19T16:43:17.943 回答
0

您可以使用我们的地理位置 API https://ip-api.io来完成此任务。它提供国家、城市、邮政编码等数据

示例请求:

$.getJSON("http://ip-api.io/json/",
    function(result) {
        console.log(result);
    });

示例响应:

{
  "ip": "64.30.228.118",
  "country_code": "US",
  "country_name": "United States",
  "region_code": "FL",
  "region_name": "Florida",
  "city": "Fort Lauderdale",
  "zip_code": "33309",
  "time_zone": "America/New_York",
  "latitude": 26.1882,
  "longitude": -80.1711,
  "metro_code": 528,
  "suspicious_factors": {
    "is_proxy": false,
    "is_tor_node": false,
    "is_spam": false,
    "is_suspicious": false
  }
}
于 2017-08-09T20:00:43.807 回答