可能你是一名安全员,正在追踪写过威胁邮件或侵入他人公司系统的嫌疑人。你想过如何获得IP地址的地理位置在哪里吗?想过你正在使用的代理服务器是否在本地范围内吗?你肯定有与你通信人的IP地址,但想过要知道他们正在那里与你联系吗?
在没有得到授权的情况下,这里可以告诉你找到该IP地址的确切位置。
一家名为MaxMind的公司维护着一个包含全球定位系统坐标、地区代码、邮政编码和国家在全球每个IP地址位置的数据库。此数据库不是典型的数据库格式,而是平面文件。MaxMind收取370美元的网站许可证和90美元/月(1360美元/年)更新此数据库。他们的软件使得查询数据库,甚至Windows或Mac用户都可以非常容易管理的一个及棒的用户端。
MaxMind还提供了不需任何软件或工具来读取这个数据库的免费开发版本。虽然略低于商业版本的准确性,但价格方面及有竞争力。只需一个程序来读取这些数据,就可以找到所需要的IP地址。
Jennifer Ennis和T. Williams两位程序员开发了一个名为pygeoip的小型Python脚本,并得到GPL许可发布了该脚本,该脚本只要我们输入相关IP地址即可得到关键信息。本教程不言自明,如果想提高Python技能,请参阅Python教程。
步骤1: 启动Kali,打开终端
第一步,启动Kali,或者Linux系统。打开终端。 注意:注意下面命令的格式。这篇文章的格式会造成很大的空白,因为它会将行拉长以适应页边距。要记住这一点因为很长的URLs需将自己放到单独的行中。大的空间等于一个空间,。查看屏幕截图,看看它们实际上是什么样子的。
步骤2:数据库下载
从MaxMind下载数据库,输入以下命令获取。
kali > wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz 然后解压。
kali> gzip -d GeoLiteCity.dat.gz
![图片描述](upload/attach/201902/840827_PGJJW4R2MEWFSXD.png)
通过检查数据库目录来查看是其否准备就绪。
kali > ls -alh GeoLiteCity.dat 步骤3:下载并安装Pygeoip
接下来,需要安装Pygeoip脚本来读取数据库Pygeoip。然后输入以下指令来下载。
kali > wget http://pygeoip.googlecode.com/files/pygeoip-0.1.3.zip
![图片描述](upload/attach/201902/840827_WWVZFAFESHZDKTR.png)
然后,将其解压缩。
kali > unzip pygeoip-0.1.3.zip
![图片描述](upload/attach/201902/840827_NP646SVZHMSH3WG.png)
然后将一些设置工具下载到Pygeoip目录中。
kali > cd /pygeoip-0.1.3 kali > wget http://svn.python.org/projects/sandbox/trunk/setuptools/ez_setup.py kali > wget http://pypi.python.org/packages/2.5/s/setuptools-0.6c11-py2.5.egg
![图片描述](upload/attach/201902/840827_X2YBDPPMUR4B49S.png)
移动并构建和安装设置工具。
kali > mv setuptools-0.6c11-py2.5.egg setuptools-0.7a1-py2.5.egg kali > python setup.py build kali > python setup.py install
![图片描述](upload/attach/201902/840827_6NYVEVWVT82TVC7.png)
需要将数据库移动到Pygeoip目录中,之所以这样做事因为脚本可以在不使用完整路径的情况下访问它。
kali > mv GeoLiteCity.dat /pygeoip-0.1.3/GeoLiteCity.dat 现在,数据库已经就绪,Pygeoip脚本已经下载并安装完毕,现在可以开始使用Pygeoip查询该数据库。
首先,需要启动Python shell。
kali > python 然后,您将看到三重>>>,表示您现在处于交互式Python shell中。导入模块并类化。
import pygeoip gip = pygeopip.GeoIP('GeoLiteCity.dat') 开始查询。查查谷歌的IP。 rec = gip.record_by_addr('64.233.161.99') for key.val in rec.items(): ... print "%s: %s" %(key,val) ... 注意!左缩进“>>>”非常关键。如果没有,就可能出错。
![图片描述](upload/attach/201902/840827_TSFZQVPBRW5J52Q.png)
如图所示,可以看到在Mountain View找到谷歌的IP, CA的区号是650,邮政编码是94043,经度是-122.0574,纬度是37.4192。再定位cnn.com的IP。
![图片描述](upload/attach/201902/840827_CFD4W8F69SNHMEC.png)
同样,数据库和pygeoip脚本的结合能够为我们提供CNN IP地址的关键位置信息。
尽管有点笨拙,也许在Null Byte community中具有Python技能的人希望编写一个具有良好用户界面的交互式脚本,用户可以在其中输入IP并获取记录信息。但这个小工具非常适合定位全球的任何一处的IP地址,