pypcap

pypcap【pypcap】Ethereal 自带许多协定的 decoder,简单,易用,基于winpcap的一个开源的软体·但是它的架构并不灵活,如何你要加入一个自己定义的的解码器,得去修改 Ethereal的代码,再重新编译,很烦琐·对于一般的明文 协定,没有什幺问题,但是对于加密协定,比如网路游戏,客户端程式一般会在刚连线上的时候,传送一个随机密钥,而后的报文都会用这个密钥进行加密,如此· 要想破解,得要有一个可程式的抓包器·
基本介绍中文名:pypcap
概述 :Ethereal 自带许多协定的
简介:libpcap是一个不错的选
过程:import pcap
简介libpcap是一个不错的选择,但是对于抓包这样需要反覆进行”试 验->修改”这个过程的操作,c 语言显然不是明智的选择.Python提供了几个最简单的 。在windows平台上,你需要先安装winpcap,如果你已经安装了Ethereal非常好用过程一个规範的抓包过程import pcapimport dpktpc=pcap.pcap() #注,参数可为网卡名,如eth0pc.setfilter('tcp port 80') #设定监听过滤器for ptime,pdata in pc: #ptime为收到时间,pdata为收到数据print ptime,pdata #...对抓到的乙太网V2数据包(raw packet)进行解包p=dpkt.ethernet.Ethernet(pdata)if p.data.__class__.__name__=='IP':ip='%d.%d.%d.%d'%tuple(map(ord,list(p.data.dst)))if p.data.data.__class__.__name__=='TCP':if data.dport==80:print p.data.data.data # by gashero参数一些显示参数nrecv,ndrop,nifdrop=pc.stats()返回的元组中,第一个参数为接收到的数据包,(by gashero)第二个参数为被核心丢弃的数据包 。