python绝技 — 使用PyGeoIP关联IP地址和物理位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python绝技 — 使用PyGeoIP关联IP地址和物理位置相关的知识,希望对你有一定的参考价值。

准备工作

要关联IP与物理位置,我们需要有一个包含这样对应关系的数据库。

我们可以使用开源数据库GeoLiteCity,它能够较为准确地把IP地址与所在城市关联起来

下载地址:http://dev.maxmind.com/geoip/legacy/geolite/

技术分享

下载之后我们解压:xz -d GeoLiteCity.dat.xz,如:/My/lib/ip/GeoLiteCity.dat

技术分享

 

安装pygeoip库。这个库用于对GeoLiteCity数据库的查询 

技术分享

 

代码:

 

#!/usr/bin/python
#--*--coding=utf-8--*--

import pygeoip

gi = pygeoip.GeoIP(‘/My/lib/ip/GeoLiteCity.dat‘)

def printRecord(tgt):
	rec = gi.record_by_addr(tgt)
	city = rec[‘city‘]
	region = rec[‘region_code‘]
	country = rec[‘country_name‘]
	long = rec[‘longitude‘]
	lat = rec[‘latitude‘]
	print ‘[*] 主机: ‘ + tgt + ‘ Geo-located.‘
	print ‘[+] ‘ + str(city) + ‘, ‘ +str(region)+‘, ‘+str(country)
	print ‘[+] 经度: ‘+str(lat)+‘, 维度: ‘+ str(long)

tgt = ‘183.141.110.74‘
printRecord(tgt)

183.141.110.74是随便找的一个代理ip地址,查查看地址:

技术分享

查询结果

技术分享

 

以上是关于python绝技 — 使用PyGeoIP关联IP地址和物理位置的主要内容,如果未能解决你的问题,请参考以下文章

在 Appengine 上使用 Pygeoip - 没有名为 mmap 的模块

python绝技 — 用Scapy解析TTL字段的值

《Python绝技:运用Python成为顶级黑客》 Python实用小工具

python绝技 — 嗅探FTP登录口令

Python绝技

python绝技学习笔记第二天