如何检测访问您网站的用户所在的国家/地区和城市?

时间:2009-07-22 05:01:12

标签: python web-applications

如何检测访问您网站的用户的原籍国?

我在我的网站上使用Google Analytics,可以看到我有来自世界不同地区的用户。

但在我的申请中,我想提供一些基于国家和城市的额外定制。

是否可以从浏览器中检测到此信息?这是一个Python Web应用程序。

3 个答案:

答案 0 :(得分:15)

Grab and gunzip http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz,安装GeoIP-Python软件包(如果你在Debian或Ubuntu中,则安装python-geoip软件包,否则安装http://geolite.maxmind.com/download/geoip/api/python/GeoIP-Python-1.2.4.tar.gz),然后执行:

import GeoIP
gi = GeoIP.open("GeoLiteCity.dat", GeoIP.GEOIP_INDEX_CACHE | GeoIP.GEOIP_CHECK_CACHE)
print gi.record_by_name("74.125.67.100") # a www.google.com IP

{'city': 'Mountain View', 'region_name': 'California', 'region': 'CA', 'area_code': 650, 'time_zone': 'America/Los_Angeles', 'longitude': -122.05740356445312, 'country_code3': 'USA', 'latitude': 37.419200897216797, 'postal_code': '94043', 'dma_code': 807, 'country_code': 'US', 'country_name': 'United States'}

数据库是免费的(http://geolite.maxmind.com/download/geoip/database/LICENSE.txt)。他们也卖掉了它;我认为这只会让你更频繁地更新。

答案 1 :(得分:8)

获取访问者的IP并使用geolocation网络服务进行检查(如果您希望在内部主持该决定,则购买地理位置数据库)。

答案 2 :(得分:1)

最大的心灵花钱。 对于免费的国家代码解决方案,您可以尝试: https://pypi.python.org/pypi/geoip2nation/

pip install geoip2nation

from geoip import geoip
r = geoip.GeoIp()
r.load_memory()
r.resolve("12.12.12.12").country_code
#This prints : 'US'

print r.resolve("123.44.57.4")
#This prints : {'country': 'Korea (South)', 'host_name': '', 'country_code': 'KR'}

r.resolve2("12.12.12.12")
#This prints : 'US'