0
我在Windows 8中安裝了python(x,y)2.7.5.1和dpkt 1.7 win32.exe模塊。 我的輸入數據集是從CAIDA下載的.pcap文件。我想分析pcap文件以查看數據包的IP和TCP標頭,如下所示。如何解析pcap文件的頭文件?
Ethernet(src='\x00\x1a\xa0kUf', dst='\x00\x13I\xae\x84,', data=IP(src='\xc0\xa8\n\n',
off=16384, dst='C\x17\x030', sum=25129, len=52, p=6, id=51105, data=TCP(seq=9632694,
off_x2=128, ack=3382015884, win=54, sum=65372, flags=17, dport=80, sport=56145)))
使用的代碼
f = open('test.pcap') pcap = dpkt.pcap.Reader(f)
for ts, buf in pcap:
eth = dpkt.ethernet.Ethernet(buf)
print eth
但是蔭越來越像下面只有:不顯示IP和TCP報頭。是什麼原因?如何解析pcap文件的頭文件?
Ethernet(src='\x00\x00\xcd\x01k7', dst='E\x00\x00<\xda\xd3', type=10315, data='Y\xacG~\[email protected]\x08\x00\xf8\xb3K\xa4\x05\x00')
請幫助我儘快..........
訪問eth.data.data時,因爲它沒有屬性,我收到錯誤數據。 >>> eth.data 'Y \ xacG〜\ XDE @ \ X08 \ X00 \ XF8 \ xb3K \ XA4 \ X05 \ X00' >>> eth.data.data 回溯(最近最後一次通話) : 文件「」,第1行,在 AttributeError:'str'對象沒有'data'屬性 –
guny
也許它不是TCP pkt,它可能是一個ARP/ICMP pkt,你必須添加適當的TCP檢查/ UDP/ARP/ICMP包。 –
在Wireshark中打開輸入的CAIDA pcap文件時,它包含TCP和ICMP數據包。我們可以在Wireshark中看到諸如timetolive,flags等標題信息,但是如何通過Python或任何其他可用編程語言使用編程來訪問這些數據? [在其他一些類似問題的堆棧溢出中,顯示pcap文件沒有以太網,因爲其第2層協議是屬性數據不存在的原因。如果是這樣,那麼該怎麼辦? ] – guny