我需要将一个PCAP文件分成两个不同的文件:第一个文件应该包括所有(并且只)指向ISO/OSI模型的应用层的数据包,而第二个文件包括所有其他文件。在
我用Scapy来应用过滤器:
pkts = PcapReader(infile)
applayerpkts = (pkt for pkt in pkts if pkt.haslayer(Raw))
lowlayerspkts = (pkt for pkt in pkts if not pkt.haslayer(Raw))
wrpcap(applayerfilename, applayerpkts)
wrpcap(lowlayersfilename, lowlayerspkts)
使用pkt.haslayer(Raw)
方法,因为该层只应包含在定向到应用层的数据包上。在
怎么了?我注意到applayerfilename
+lowlayersfilename
(在文件大小中)与{
所报告的方法在计算上也很昂贵(我有一个大约1.5GB的PCAP列表),因为{
我希望应用不同的过滤器,解析一次输入的PCAP。
我可以使用PcapReader
类并手动解析PCAP,但是我不知道如何生成一个PCAP来传递给wrpcap(...)
方法。在
编辑: 我也尝试过这个解决方案:
^{pr2}$但它不起作用,因为我输入的PCAP太大,它消耗了太多内存。。。在
是否存在类似append_to_pcap(filename, packet)
的函数(wrpcap(...)
函数不作为追加函数工作)?在
我(至少表面上)是这样解决的:
相关问题 更多 >
编程相关推荐