2014-02-13 78 views
1

我使用參數-s 100(這意味着我只捕獲數據包的標頭)使用tcpdump捕獲WiFi流量。整個數據包長度Scapy

當我加載.pcap文件並處理它與Scapy的我做的:

pkts = rdpcap(pcapfile) 
totalbytes = 0 
for pkt in pkts: 
    totalbytes += len(pkt) 

然而,正如我在截斷捕捉,做len(pkt)不會給我全包長度(幀長度 ),它會給我捕獲的數據包長度。我怎樣才能得到真正的數據包長度?

額外:正如我在一些場合做之前,我在Wireshark的打開PCAP文件,然後搜索感興趣的十六進制值。但在這種情況下(frame.len)將顯示我正在查找的值,但我無法找到wireshark獲取此實際數據包長度的方式,而無需捕獲整個數據包。

回答

2

rdpcap函數使用PcapReader類讀取數據包。不幸的是,這個類丟棄了您在read_packet方法中查找的信息,即使它在pcap文件中找到。所以你必須直接使用RawPcapReader

totalbytes = 0 
for pkt, (sec, usec, wirelen) in RawPcapReader(pcapfile): 
    totalbytes += wirelen 
+0

令人驚歎的赫爾穆特!非常感謝!沒有任何信息像瘋了似的搜索。我希望這可以幫助其他人。 – EnriqueH