使用一些 API 可能有一种简单的方法可以做到这一点,但网络编程不是我的强项。 如何在 Python 中找出用户所在的国家/地区? 我需要使用与操作系统无关的解决方案,而且我宁愿只使用标准库。有什么我可以用 IP 地址做的吗?
问问题
3002 次
3 回答
1
您可以为 Python 使用 geo-ip: http ://code.google.com/p/python-geoip/ 它的默认免费数据库足以准确地获取用户所在的国家/地区。
于 2012-11-27T17:49:14.203 回答
0
Joran Beasely在这里给出了一个很好的答案,但由于它以评论而不是回复的形式出现,我无法将其标记为我接受的答案。不过,感谢您的帮助!
于 2012-12-02T02:44:55.673 回答
0
如果您知道用户的公共 IP,那么您可以使用freegeip来做到这一点。下面是获取位置和时区的 Python 3.4.2 代码。
>>> import requests
>>> ip = '141.70.111.66'
>>> url = 'http://freegeoip.net/json/'+ip
>>> r = requests.get(url)
>>> js = r.json()
>>> js['country_code']
'DE'
>>> js['country_name']
'Germany'
>>> js['time_zone']
'Europe/Berlin'
>>> js['city']
'Stuttgart'
>>> js.items()
dict_items([('latitude', 48.7667), ('ip', '141.70.111.66'), ('region_code', 'BW'), ('country_code', 'DE'), ('city', 'Stuttgart'), ('zip_code', '70173'), ('country_name', 'Germany'), ('longitude', 9.1833), ('region_name', 'Baden-Württemberg Region'), ('time_zone', 'Europe/Berlin'), ('metro_code', 0)])
于 2016-06-15T16:56:16.577 回答