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