2014-10-19 24 views
0

我想獲取.pcap文件的快照長度。我去了pcap和pcap_snapshot的手冊頁,但一直沒有能夠使這個功能正常工作。如何使用dpkt獲取.pcap文件的快照長度?

我運行一個虛擬機Fedora20,它是用Python編寫

首先,我嘗試導入該男子頁說包含的文件,但我得到的進口和pcap_snapshot() 我一個語法錯誤我是python的新手,所以我想象它簡單但不知道它是什麼。任何幫助深表感謝!

import <pcap/pcap.h> 
import dpkt 

myPcap = open('mycapture.pcap') 
myFile = dpkt.pcap.Reader(myPcap) 

print "Snapshot length = ", myFile.pcap_snapshot() 

回答

1

除非您使用C,C++或Objective-C編寫代碼,否則不要先閱讀手冊頁。

如果您不使用C語言的語言,則需要使用libpcap的包裝器,並且應首先閱讀包裝器的文檔,因爲您不會從libpcap調用C函數,你會從包裝器中調用函數。如果您嘗試在Python中導入C語言頭文件(例如pcap/pcap.h),那麼這將不起作用。如果您嘗試直接調用C語言函數(如pcap_snapshot()),那也無法正常工作。

Dpkt不是包裝;相反,它是一個庫來解析數據包並讀取pcap文件,使代碼讀取獨立於libpcap的pcap文件。因此,它不會爲諸如pcap_snapshot()之類的libpcap API提供包裝。

Dpkt的文檔非常有限。快速查看其pcap.py模塊似乎暗示

print "Snapshot length = ", myFile.snaplen 

會工作;試試看。