我試圖在python中打開.pcap文件。有人能幫忙嗎?每個我嘗試這一次,它提供了一個錯誤消息"IOError: [Errno 2] No such file or directory: 'test.pcap'"
在python中打開pcap文件
import dpkt
f = open('test.pcap')
pcap = dpkt.pcap.Reader(f)
我試圖在python中打開.pcap文件。有人能幫忙嗎?每個我嘗試這一次,它提供了一個錯誤消息"IOError: [Errno 2] No such file or directory: 'test.pcap'"
在python中打開pcap文件
import dpkt
f = open('test.pcap')
pcap = dpkt.pcap.Reader(f)
先給open()
的正確路徑test.pcap
:
f = open(r'C:\Users\hollandspur\Documents\test.pcap')
或一些這樣...
蒂姆指出您可能需要使用整個文件路徑,因爲您不在同一個目錄中。如果你從解釋運行,就可以使用以下命令來檢查您的路徑:
import os
os.getcwd()
如果在同一個目錄中,你是文件存儲,那麼你需要完整的文件路徑不是。您可以鍵入整個內容,或者使用更多的工作來接受相關文件路徑。
import os
relativePath = 'test.pcap' # Relative directory something like '../test.pcap'
fullPath = os.path.join(os.getcwd(),relativePath) # Produces something like '/home/hallandspur/Documents/test.pcap'
f = open(fullPath)
這將允許你給這會轉到上一級目錄下,尋找文件的路徑,例如"../test.pcap"
。如果您從命令行運行此腳本,或者您的文件位於與當前目錄接近的其他目錄中,這一點尤其有用。
您可能還需要尋找到的功能,如os.path.isfile(fullPath)
,將讓您檢查文件是否存在
我想在python打開.pcap文件。有人能幫忙嗎?每個我嘗試這一次,它提供了一個錯誤消息
IOError: [Errno 2] No such file or directory: 'test.pcap'
試試這個代碼:試試這個代碼,以克服上述的ioerror
import dpkt,sys,os
"""
This program is open a pcap file and
count the number of packets present in it.
it also count the number of ip packet, tcp packets and udp packets.
......from irengbam tilokchan singh.
"""
counter=0
ipcounter=0
tcpcounter=0
udpcounter=0
filename=raw_input("Enter the pcap trace file:")
if os.path.isfile(filename):
print "Present: ",filename
trace=filename
else:
print "Absent: ",filename
sys.stderr.write("Cannot open file for reading\n")
sys.exit(-1)
for ts,pkt in dpkt.pcap.Reader(open(filen,'r')):
counter+=1
eth=dpkt.ethernet.Ethernet(pkt)
if eth.type!=dpkt.ethernet.ETH_TYPE_IP:
continue
ip=eth.data
ipcounter+=1
if ip.p==dpkt.ip.IP_PROTO_TCP: #ip.p == 6:
tcpcounter+=1
#tcp_analysis(ts,ip)
if ip.p==dpkt.ip.IP_PROTO_UDP: #ip.p==17:
udpcounter+=1
print "Total number of packets in the pcap file :", counter
print "Total number of ip packets :", ipcounter
print "Total number of tcp packets :", tcpcounter
print "Total number of udp packets :", udpcounter
你應該讀作二進制文件。請參閱「rb」參數,該參數表示將其讀取爲二進制文件 import dpkt f = open('test.pcap','rb') pcap = dpkt.pcap.Reader(f)
錯誤不清楚?你的代碼沒有看到你的'test.pcap'文件 – SilentGhost 2010-07-02 10:11:11