在Python中打开pcap文件

3
我想在Python中打开一个.pcap文件,有人可以帮忙吗?每次尝试时,都会出现错误消息:"IOError: [Errno 2] No such file or directory: 'test.pcap'"
import dpkt
f = open('test.pcap')
pcap = dpkt.pcap.Reader(f)

7
错误不清楚吗?你的代码没有找到test.pcap文件。 - SilentGhost
4个回答

3

尝试给open()正确的路径test.pcap

f = open(r'C:\Users\hollandspur\Documents\test.pcap')

or some such...


0

正如 Tim 在上面指出的那样,您可能需要使用整个文件路径,因为您不在同一个目录中。如果您正在从解释器运行,则可以使用以下命令检查您的路径:

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)的功能,以检查文件是否存在。


0

你应该以二进制文件的形式进行读取。请看 'rb' 参数,它表示以二进制文件的形式进行读取。 import dpkt f = open('test.pcap','rb') pcap = dpkt.pcap.Reader(f)


-1
我正在尝试在Python中打开一个.pcap文件。有人可以帮忙吗?每次我尝试这样做,它都会给出一个错误消息:IOError: [Errno 2] No such file or directory: 'test.pcap' 尝试这段代码:尝试使用以下代码来解决上述的IOError。
import dpkt, sys, os """ 这个程序打开一个pcap文件, 并计算其中的数据包数量。 它还会计算ip数据包、tcp数据包和udp数据包的数量。 ......来自irengbam tilokchan singh。 """ counter = 0 ipcounter = 0 tcpcounter = 0 udpcounter = 0 filename = raw_input("输入pcap跟踪文件名:") if os.path.isfile(filename): print "存在: ", filename trace = filename else: print "不存在: ", filename sys.stderr.write("无法打开文件进行读取\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 "pcap文件中的总数据包数:", counter print "ip数据包总数:", ipcounter print "tcp数据包总数:", tcpcounter print "udp数据包总数:", udpcounter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接