在 python 和/或 django 中按 IP 进行地理编码
Posted
技术标签:
【中文标题】在 python 和/或 django 中按 IP 进行地理编码【英文标题】:Geocode by IP in python and/or django 【发布时间】:2012-01-17 20:52:06 【问题描述】:我应该使用哪个库在 Python 中按 IP 地址进行地理编码? python 是否有类似于http://www.rubygeocoder.com/ 的东西?我很难找到任何通过 IP 进行地理编码的东西。
【问题讨论】:
What python libraries can tell me approximate location and timezone given an IP address?的可能重复 【参考方案1】:取自this answer:
>>> import urllib
>>> response = urllib.urlopen(
'http://api.hostip.info/get_html.php?ip=12.215.42.19&position=true').read()
>>> print response
Country: UNITED STATES (US)
City: Aurora, TX
Latitude: 33.0582
Longitude: -97.5159
IP: 12.215.42.19
【讨论】:
我刚刚尝试了一些丹麦IP地址的服务,但准确性很差。【参考方案2】:使用 GitHub/PyPi 上的Geocoder,您可以通过执行以下操作非常简单地从特定 IP 地址获取完整的 JSON 对象响应。
>>> import geocoder
>>> g = geocoder.ip('12.215.42.19')
>>> g.latlng
(38.0, -97.0)
>>> g.json
您还可以通过在搜索字段中添加“我”来搜索您当前的 IP 地址
g = geocoder.ip('me')
g.address
通过以下方式安装:
pip install geocoder
不同的提供者可能比其他提供者更准确,但它很实用!
【讨论】:
【参考方案3】:试试 GeoIP() 对象:
https://docs.djangoproject.com/en/dev/ref/contrib/gis/geoip/
【讨论】:
我看到了,我想知道我是否不必进行一些神秘的安装过程...... 安装应该非常简单:maxmind.com/app/python 他们似乎有 match.com,about.com 作为他们的客户。如果需要,唯一需要调查的是多站点许可证的成本。以上是关于在 python 和/或 django 中按 IP 进行地理编码的主要内容,如果未能解决你的问题,请参考以下文章