全部!
我需要确定当前用户城市。使用 HTML5 这不是问题。但我需要支持旧浏览器(leke 即 7,8)。首先,我想使用 IP 地址查找位置。但它不容易实现(我需要带有位置的实际数据库)。免费的网络服务没有提供我需要的信息。其中许多可以确定一个国家(但不是城市)。
我尝试使用http://www.geoplugin.net/并且该服务仅返回国家(作为和另一个免费)。我尝试使用带有 IP 的 CSV 数据库(但在互联网上我可以找到旧版本)。
您知道确定用户城市的免费方法吗?谢谢!
全部!
我需要确定当前用户城市。使用 HTML5 这不是问题。但我需要支持旧浏览器(leke 即 7,8)。首先,我想使用 IP 地址查找位置。但它不容易实现(我需要带有位置的实际数据库)。免费的网络服务没有提供我需要的信息。其中许多可以确定一个国家(但不是城市)。
我尝试使用http://www.geoplugin.net/并且该服务仅返回国家(作为和另一个免费)。我尝试使用带有 IP 的 CSV 数据库(但在互联网上我可以找到旧版本)。
您知道确定用户城市的免费方法吗?谢谢!
一些较旧的浏览器确实支持以某种形式获取用户位置。回到 IE7/8 时代,一些不同的浏览器以不同的方式处理地理定位。这对开发人员来说是一种痛苦。我这辈子都不记得如何在 IE7/8 中执行此操作,但记得在某些时候为此编写了一个包装器库。现在大多数人使用包装库来处理所有不同的浏览器实现。Bing Maps V7 JavaScript 将所有新旧功能包装到其 API 中的一个通用 GeoLocationProvider 类中,如果您的站点中需要地图,这可能是一个选项:http: //msdn.microsoft.com/en-us/library/ hh125833.aspx
您可以使用我们的地理位置 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
}
}