首页 > 技术文章 > Python Geoip 获取IP地址经度、纬度

wangxiaoqiangs 2017-02-16 15:48 原文


简介:

除了一些免费的 API 接口,例如 http://ipinfo.io/223.155.166.172 可以得到一些信息外,还可以通过 python-geoip 库来解决这个问题。

shell > curl http://ipinfo.io/223.155.166.172
{
  "ip": "223.155.166.172",
  "hostname": "No Hostname",
  "city": "Changsha",
  "region": "Hunan",
  "country": "CN",
  "loc": "28.1792,113.1136",
  "org": "AS4134 CHINANET-BACKBONE"
}

示例:

1、安装 python-geoip、python-geoip-geolite2

shell > pip install python-geoip-geolite2 -i https://pypi.douban.com/simple

# -i 使用豆瓣源

2、使用

shell > ipython

In [1]: from geoip import geolite2

In [2]: line = geolite2.lookup('223.155.166.172')

In [3]: line.get_info_dict
Out[3]: <bound method IPInfo.get_info_dict of <IPInfo ip='223.155.166.172' country='CN' continent='AS' subdivisions=frozenset(['43']) timezone='Asia/Shanghai' location=(28.1792, 113.1136)>>

In [4]: line.location
Out[4]: (28.1792, 113.1136)

推荐阅读