10月 232013
 

在windows上使用基于python的GeoIP数据集GeoLiteCity.dat,要使用这个,先把dat文件下载下来,在这里:http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/GeoLiteCity-latest.zip,然后需要下载一个可用GeoIP的python库,官方提供了2种选择:http://www.maxmind.com/app/pythonhttps://github.com/appliedsec/pygeoip,我们选择后者pygeoip,因为前者对linux系统支持比较好,而windows还需要编译相关的库,我不想这样麻烦。后者则是完全基于python的,当把后者下载下来后,执行setup.py build和setup.py install,如果正常的话,就会完全安装好。如果没有提示正常安装,则可能是因为setup.py中引用的库不存在:setuptools,这个库是专门用来进行安装一些第三方库的,它的下载地址在:http://pypi.python.org/pypi/setuptools,选择对应的python版本即可。这时就可以使用一些pygeoip的例子代码了,更多的例子代码在这里:http://code.google.com/p/pygeoip/wiki/Usage

另外,可能还需要下载数据库,GeoIP.dat和GeoIPCity.dat可以在官方网站上找到,不过GeoIPISP.dat和GeoIPRegion.dat没有找到,我GG了一下,找到以下两个地址:http://linux16.net/upload/files/file/Any_files/2008/09/GeoIP.tar.gzhttp://torcache.net/torrent/CD948DD092BB435772A8EADA107107E8DE07C03A.torrent,如果这两者都不能下载时,试试用迅雷的离线下载功能吧,蛮好用的。好像还是没有找到GeoIPRegion.dat,不过它的功能好像GeoIPCity.dat都能提供。

import os
import pygeoip
gi = pygeoip.GeoIP(‘GeoIP.dat’)
gic = pygeoip.GeoIP(‘GeoLiteCity.dat’)
gio = pygeoip.GeoIP(‘GeoIPOrg.dat’)
gioo = pygeoip.GeoIP(‘GeoIPISP.dat’)
#gir = pygeoip.GeoIP(‘GeoIPRegion.dat’) file NOT found on web
print gi.country_code_by_name(‘google.com’)
print gi.country_name_by_name(‘google.com’)
print gic.record_by_name(‘google.com’)
print gio.org_by_name(‘baidu.com’)
print gioo.org_by_name(‘baidu.com’)

print
print gi.country_code_by_addr(‘64.233.161.99′)
print gi.country_name_by_addr(‘64.233.161.99′)
print gic.record_by_addr(‘64.233.161.99′)
print gio.org_by_addr(‘64.233.161.99′)
print gioo.org_by_addr(‘64.233.161.99′)

os.system(‘pause’)

 Posted by at 上午 1:41

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)