Pypcap和dpkt 转载

pypcap 的库特别难装,反正我是莫名其妙装上了。但是在另一台电脑就装不上去。暂时就不写安装方法。此处,先标记下,以后有机会补充。1、认识下Pypcap和dpkt一开始,lipcap API库被设计成使用C和C++语言运行。但随着更多不用高级编程语言的出现,比如Perl、Python、Java、C#和Ruby等,lipcap被允许可以被封装成不同语言的库被调用。Libpcap可以在大部分的Unix操作系统下运行,同时也支持windows系统,也就是winpcap库。有了上面概念,pypcap库的介绍就简单很多了,它是一款基于libpcap封装的为python语言提供接口的抓包库,专门在python上运行。由于Mac OS系统预安装了python2.7,因此它可以运行Pypcap库。至于dpkt,它则是用来解析数据包的库,不过我对它的了解不是很多。2、开始一场纠结的冒险吧好的这部分将要讲的内容是编程部分,将会站在一个小白的角度逐步讲解。首先是建文件,用sublime新建个py文件(command+N),目录么。。个人喜好吧,我就放在桌面了。command+S保存,右下角改成python语言,这样可以自动检查语法上的一些问题。既然辛辛苦苦把库都安装好了,肯定得用对吧。这边直接import把库调用一下。对了,为了后面实现另外一些功能,除了pcap和dpkt,还需要调用一下time、math和os库。 好的接下来我们使用pcap库来进行抓包,这里要用到一个函数pcap.pcap()。这个函数是用来定义嗅探器的,我们的抓包就是通过这个函数定义的嗅探器实现的。如果给嗅探器取名为sniffer,那么参考的定义如下:
sniffer=pcap.pcap(name=None,promisc=True,immediate=True)#这个函数是用来定义嗅探器的,我们的抓包就是通过这个函数定义的嗅探器实现的
  其中括号里是可以加入参数的,比如name、promisc、immediate和所要抓包的网卡名称等等。网上的中文资料对这个函数的介绍非常有限,所以我也没有找到一个参数列表。但是不加参数也是可以运行的。好的有了嗅探器以后,我们就可以进行抓包了。那么抓下来的包在哪里呢了(我觉得应该是在缓存里面,请原谅我的无知。。),我们去sniffer里面找找。在这里sniffer是一直在抓包的并把数据源源不断存入内存,但是我们解包得一个个解吧。所以我们做一个循环:
for timestamp,raw_buf in sniffer:
  这边sniffer中应该是有两个对象,一个timestamp是指时间戳,raw_buf是指包中的原始数据。接下来我们用dpkt进行解包了,注意以下定义: 

相关内容推荐