用于读取和解析libpcap存储文件的纯python包。
pypcapfile的Python项目详细描述
pypcapfile是处理libpcap存储文件的纯python库。
安装
最简单的安装方法是from
pypi:
sudo pip install pypcapfile
注意,对于pip,在您的代码中,包名是pypcapfile;。
您需要
导入pcapfile。
或者,可以从源安装。克隆存储库,然后
使用运行setup.py
安装参数:
git clone git://github.com/kisom/pypcapfile.git
cd pypcapfile
./setup.py install
这需要Python
distutils待
已安装。
简介
核心功能在pcapfile.savefile:
中实现>>>frompcapfileimportsavefile>>>testcap=open('test.pcap','rb')>>>capfile=savefile.load_savefile(testcap,verbose=True)[+]attemptingtoloadtest.pcap[+]foundvalidheader[+]loaded11packets[+]finishedloadingsavefile.>>>printcapfilelittle-endiancapturefileversion2.4microsecondtimeresolutionsnapshotlength:65535linklayertype:LINKTYPE_ETHERNETnumberofpackets:11
您可以查看capfile.packets:
中的数据包>>>pkt=capfile.packets[0]>>>pkt.raw()<binarydatasnipped>>>>pkt.timestamp1343676707L
现在对以太网帧和IPv4有非常基本的支持
数据包
分析。
自动解码层
到load_savefile的layers参数决定了
图层到
解码;默认值0不解码,1只加载
链接
层等…例如,没有解码:
>>>frompcapfileimportsavefile>>>frompcapfile.protocols.linklayerimportethernet>>>frompcapfile.protocols.networkimportip>>>importbinascii>>>testcap=open('samples/test.pcap','rb')>>>capfile=savefile.load_savefile(testcap,verbose=True)[+]attemptingtoloadsamples/test.pcap[+]foundvalidheader[+]loaded3packets[+]finishedloadingsavefile.>>>eth_frame=ethernet.Ethernet(capfile.packets[0].raw())>>>printeth_frameethernetfrom00:11:22:33:44:55toff:ee:dd:cc:bb:aatypeIPv4>>>ip_packet=ip.IP(binascii.unhexlify(eth_frame.payload))>>>printip_packetipv4packetfrom192.168.2.47to173.194.37.82carrying44bytes
这个例子:
>>>frompcapfileimportsavefile>>>testcap=open('samples/test.pcap','rb')>>>capfile=savefile.load_savefile(testcap,layers=1,verbose=True)[+]attemptingtoloadsamples/test.pcap[+]foundvalidheader[+]loaded3packets[+]finishedloadingsavefile.>>>printcapfile.packets[0].packet.src00:11:22:33:44:55>>>printcapfile.packets[0].packet.payload<hexstringsnipped>
最后:
>>>frompcapfileimportsavefile>>>testcap=open('samples/test.pcap','rb')>>>capfile=savefile.load_savefile(testcap,layers=2,verbose=True)>>>printcapfile.packets[0].packet.payloadipv4packetfrom192.168.2.47to173.194.37.82carrying44bytes
IPv4模块(ip)当前仅支持基本IP头,
即it
尚未分析选项或外接程序填充。
界面还是有点乱。
未来计划改进
- IP选项解析(支持END和NOP)
- IPv6支持
- TCP选项分析
- ARP支持
待办事项
- 编写单元测试
- 添加显示中所有字段值的__repr__方法 IP数据包 和以太网帧
另请参见
贡献者
项目的贡献者列表可以在AUTHORS文件中找到
推荐PyPI第三方库
- 热门话题
- 手机上的html调试Java web应用程序 Java当前日期和过去日期之间的差值,以年、月、日、小时、分、秒为单位 如果方法名称相同,java如何使扩展类不从上面的类触发方法? 即使在提供了准确的firebase引用之后,java仍出现“无法跳转到类型”异常。请看详情 jar文件中的java图像 java如何避免从缓存读取时修改相同的对象实例? Android中java完全控制的线程队列 JTextArea中的java计算 java如何独立运行。jar作为64位mashine上的32位 java在尝试实例化自引用泛型类的实例时,如何处理自引用类型参数 java如何安装着色jar而不是原来的jar java在resultSet之后使用If-Else 多线程是java。朗,反思一下。方法调用线程安全 java 7语言向后兼容性 Objective C中的Category和Java 8中的Default方法是否等效?