2
我有大约10GB的pcap数据和IPv6流量来分析存储在IPv6报头和其他扩展报头中的信息。为此,我决定使用Scapy框架。我试过rdpcap函数,但对于这样的大文件,它不推荐。它试图将所有文件加载到内存中,并陷入我的情况。 我,在这种情况下嗅建议的网发现,我的代码如下所示:使用scapy读取PCAP文件
def main():
sniff(offline='traffic.pcap', prn=my_method,store=0)
def my_method(packet):
packet.show()
在函数调用my_method我单独收到的每个数据包,我可以解析它们,但.... 当我打电话显示函数是在建造框架方法我得做这样的:
当打开Wireshark的我得到了妥善找包:
你能告诉我如何解析在Scapy的这个包来获得正确的结果?
编辑: 根据评论中的讨论,我找到了一种用Python解析PCAP文件的方法。在我看来,easies方法是使用pyshark框架:
import pyshark
pcap = pyshark.FileCapture(pcap_path) ### for reading PCAP file
它可以轻松地重复读取文件与循环
for pkt in pcap:
#do what you want
对解析IPv6报头下面的方法可能是有用的:
pkt['ipv6'].tclass #Traffic class field
pkt['ipv6'].tclass_dscp #Traffic class DSCP field
pkt['ipv6'].tclass_ecn #Traffic class ECN field
pkt['ipv6'].flow #Flow label field
pkt['ipv6'].plen #Payload length field
pkt['ipv6'].nxt #Next header field
pkt['ipv6'].hlim #Hop limit field
@coder据我所知,Wireshark的显示不同的方式分组,我好接着就,随即。但看看src ip地址以及scapy如何解析它 - 据我所知它不是okey,但也许我是不正确的。 – Krystian
哦,是的,你是对的 - 我错过了** ipv6 **部分。 – coder
我在scapy github页面上打开了bug问题(https://github.com/secdev/scapy/issues/579)。 @coder你提到使用wireshark会更有效率。我的目标是获取标题的每个值并做一些统计工作 - wireshark能够执行此类活动吗? – Krystian