检测用户的国家和城市

Posted

技术标签:

【中文标题】检测用户的国家和城市【英文标题】:Detecting user's country and city 【发布时间】:2012-03-08 10:00:38 【问题描述】:

我将编写一些 Web 应用程序来。例如,当用户进入网站时,Web 应用程序应该以他/她的母语显示信息,它应该说他/她的国家(和城市,我不知道是否可能)。您知道任何数据库(IP 数据库)或任何其他方法吗?

【问题讨论】:

【参考方案1】:

您可以使用 MaxMind 的免费 G​​eoLite 数据库。 有例子和数据库文件可以在http://www.maxmind.com/app/geolitecity免费下载

我认为它大约每个月都会更新。多年来一直使用它,没有任何抱怨!

【讨论】:

我同意 - MaxMind 的免费 G​​eoLite 正是您所需要的。但请注意,您可能会为企业网络上的用户获取错误的位置(您将获得企业中心的位置,而不是用户)。这适用于所有 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 - 国家、城市、州、时区

如何查询 GHTorrent(类 SQL 语言)的国家/城市/用户编号/存储库编号?

机场代码 - iOS

地理数据编码(国家/地区/城市的标准代码)

获取iOS时区中的城市和国家/地区列表