读取PCAP:Python-DPKT中的内存错误

2024-06-03 09:24:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试读取Python2.7.10中的PCAP文件。代码是:--->

import dpkt

f = open('testbed-11jun.pcap')

pcap = dpkt.pcap.Reader(f)

for ts, buf in pcap:

    print ts, len(buf)

但我知道了错误:--->;在

1276225266.46 60

1276225266.72 60

1276225266.84 110

1276225266.84 110

1276225266.84 134

277171502.827 132

回溯(最近一次呼叫): 文件“D:/UC主题/MS论文/code/python/readpcap_dpkt.py公司“,第5行,英寸 对于ts,pcap中的buf: 文件“C:\Python27\lib\site packages\dpkt\pcap.py“,第159行,initer buf=自我。阅读(卡普伦) 记忆错误


所以基本上在读了“11号试验台”上的6条轨迹后6月pcap文件显示内存错误。“11号试验台”的尺寸6月pcap“是2GB。它有几百个痕迹。所以只有6个记录道最多只有几MB。但我还是出错了。(我的笔记本电脑内存是6 GB)

有人能告诉我们如何在没有任何记忆错误的情况下读取所有的记录道吗?在


Tags: 文件记忆内存代码pyimportgt错误
1条回答
网友
1楼 · 发布于 2024-06-03 09:24:53

我知道这个问题在很久以前就被问过了,但我认为我还是应该提供一些可能的解决办法,因为它可能会帮助其他人。在

此错误可能有两个原因:

1:打开pcap文件以进行分析,而不是二进制文件。尝试用“b”参数显式打开文件,即

f = open('testbed-11jun.pcap','rb')

注意,不指定标志默认模式字符为'r',这是用来读取文本文件的,如python documentation。在

2:dpkt无法完全解析PCAP文件的格式。请注意,PCAP有多个版本,例如libpcap和PCAP ng,它们都具有相同的扩展名。确保正确捕获了wireshark转储。例如,如果使用Dumpcap,那么下面的命令行将捕获pcap以进行dpkt解析

^{pr2}$

p标志确保使用libpcap执行捕获。在

相关问题 更多 >