检查用户所在国家

时间:2012-11-27 15:16:36

标签: python python-2.7

我正在试图找出如何检查用户所在国家/地区,然后根据我定义的用户所在国家/地区的结果执行特定代码。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

你可以这样做:

使用服务获取用户的外部IP:

f = urllib.urlopen("http://www.canyouseeme.org/")
html_doc = f.read()
f.close()
m = re.search('(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)',html_doc)
ip = m.group(0)

然后使用http://pypi.python.org/pypi/pygeoip/找出用户所在国家/地区

geoip = pygeoip.GeoIP("GeoIPCountry.dat", pygeoip.STANDARD)
result = geoip.record_by_addr(ip)

答案 1 :(得分:0)

由于您只是在征求意见,因此您可以检查语言和/或时区环境变量。问题是这些都不能保证准确 - 在菲律宾为美国/纽约的en_US设置计算机并不奇怪。