一.主要思路
(1).通过ip获取地理位置
主要是通过ip从我们获取的数据库中查询相应信地理位置信息
程序实现中已经将数据库下载到本地
(2).对经过dpkt解析的对象pcap获取ip及其位置
将经过dpkt.pcap.Reader(g)方法解析的pcap对象进行拆分解析
这个pcap对象中含有一个[timestamp,packet]类数据的数组,我们将每个层
分成以太网层和ip层两部分,通过socket读取ip,读取后利用第一部分的函数进行
地理位置信息的获取。
(3).通过ip获取信息并返回一个kml格式文档
首先是链接数据库获取位置信息,其次建立一个空集合存储相应格式的
地理信息,(格式为kml)主要注意变量和对应输出的关系。
(4).对dpkt打开的pcap包获取ip并获取相应kml文档
获取一个pcap包,遍历所有的缓冲区pcap数据包,提取以太网帧,
从该帧中获取ip信息,得到ip后通过构造的函数获取相应的kml文档
3.总结与思考
(1).主要模块获取
书中很多信息其实过时了,程序中用到模块和数据库获取方法
pygeoip模块:
{
https://github.com/appliedsec/pygeoip
kali下使用git clone 下载
或者通过apt-get install pygeoip下载(蕞方便)
(书中用的数据库后缀为dat,该模块恰好能使用dat类型的该数据库)
dat版本数据库(csdn上有dat版本留存)
https://download.csdn.net/psearch/0/10/0/2/1/geoip.dat
}
替代方法:
{
替代模块
pip install python-geoip-geolite2 -i https://pypi.douban.com/simple
pip i