检测用户的国家和城市
Posted
技术标签:
【中文标题】检测用户的国家和城市【英文标题】:Detecting user's country and city 【发布时间】:2012-03-08 10:00:38 【问题描述】:我将编写一些 Web 应用程序来。例如,当用户进入网站时,Web 应用程序应该以他/她的母语显示信息,它应该说他/她的国家(和城市,我不知道是否可能)。您知道任何数据库(IP 数据库)或任何其他方法吗?
【问题讨论】:
【参考方案1】:您可以使用 MaxMind 的免费 GeoLite 数据库。 有例子和数据库文件可以在http://www.maxmind.com/app/geolitecity免费下载
我认为它大约每个月都会更新。多年来一直使用它,没有任何抱怨!
【讨论】:
我同意 - MaxMind 的免费 GeoLite 正是您所需要的。但请注意,您可能会为企业网络上的用户获取错误的位置(您将获得企业中心的位置,而不是用户)。这适用于所有 IP 查找解决方案,而不仅仅是 MaxMind。【参考方案2】:试试http://www.netimpact.com/faq
24 小时内可免费查询 250 次。
或者您可以使用简单的 javascript 代码,与客户端的浏览器协商以检测准确的纬度和经度。
// Check for geolocation support
if (navigator.geolocation)
// Use method getCurrentPosition to get coordinates
navigator.geolocation.getCurrentPosition(function (position)
// Access them accordingly
alert(position.coords.latitude + ", " + position.coords.longitude);
);
但是,这需要用户的许可才能分享他的位置。
【讨论】:
这使您依赖于您每次都需要查询的第三方。使用包含此信息的本地数据库将使您的应用程序更快、更可靠并且在查询量方面不受限制:)【参考方案3】:http://www.hostip.info/ Hostip.info 是一个基于社区的 IP 地址地理定位项目,可免费使用数据库(见下文),但需要您将其放入您的城市才能使其正常工作。
【讨论】:
以上是关于检测用户的国家和城市的主要内容,如果未能解决你的问题,请参考以下文章
如何在国家地图中绘制城市地图? (因此用户可以搜索他们所在城市附近的广告)
用于跟踪用户位置的 Google Geolocation Api - 国家、城市、州、时区