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

Python 如何检测访问您网站的用户所在的国家和城市?,python,web-applications,Python,Web Applications,如何检测访问您网站的用户的来源国 我在我的网站上使用谷歌分析,可以看到我有来自世界不同地区的用户 但是在我的应用程序中,我想根据国家和城市提供一些额外的定制 是否可以从浏览器中检测此信息?这是一个Python web应用程序。获取访问者的IP并通过web服务进行检查(如果您希望在内部托管该决定,则购买地理位置数据库)。抓取并压缩,安装GeoIP Python包(如果您在Debian或Ubuntu中,则安装Python GeoIP包,否则安装),然后执行以下操作: {'city':'Mountai

如何检测访问您网站的用户的来源国

我在我的网站上使用谷歌分析,可以看到我有来自世界不同地区的用户

但是在我的应用程序中,我想根据国家和城市提供一些额外的定制


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

获取访问者的IP并通过web服务进行检查(如果您希望在内部托管该决定,则购买地理位置数据库)。

抓取并压缩,安装GeoIP Python包(如果您在Debian或Ubuntu中,则安装Python GeoIP包,否则安装),然后执行以下操作:

{'city':'Mountain View','region_name','California','region':'CA','area_code':650','time_zone':'America/Los_Angeles','longitude':-122.05740356445312,'country_code':'USA','latitude':37.419200897216797','postal_code':'94043','dma_code':807,'country_code':'US','country(美国

数据库是免费的()。他们也卖它;我想这只会让你更频繁地更新。

Max mind需要花钱。 要获得免费但仅限国家/地区代码的解决方案,您可以尝试:

pip安装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'

顺便说一下,如果您只需要()的话,还有一个国家专用的数据库,它要小得多。只需更改文件,使用GeoIP.GeoIP_标准而不是上面的标志,然后按名称(ip)调用gi.country_code_。感谢提醒,我使用过maxmind web界面,但从未注意到它们以前提供了免费数据库。仅供参考,maxmind Precision比GeoLite精确得多,如果你想比国家更准确。对于国家来说,这几乎没有什么区别(在我的数据集中,来自85个国家的400个地址-位置对)。我最近在硕士论文中研究了这一点(尚未完成,因此现在不再链接)。@GlennMaynard是否可以转换为其他语言,如汉语?这是不正确的。GeoLite或IP2Location-LITE是免费使用的。页面底部有一个商业转折:我们还提供商业再分配许可。
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'