【发布时间】:2015-04-11 16:32:15
【问题描述】:
我正在使用以下 python 代码来捕获流量并将其转储到 .pcap 文件中:
from pcapy import open_live
p = open_live("eth0", 65535, 1, 0)
dumper = p.dump_open("./test.pcap")
while capturing:
(header, packet) = p.next()
dumper.dump(header, packet)
我实际上是在一个线程中运行它,其中capturing 是一个threading.Event(),当我想停止捕获时设置为False(因此它退出循环并干净地返回)。
但是,当我尝试使用wireshark 打开test.pcap 时,我收到以下消息:
捕获文件似乎在数据包的中间被剪短了。
我有时会看到test.pcap 末尾缺少几个数据包(我可以调试它,因为我正在将截获的数据包写入 .csv 文件)。但是,除此之外,我认为 pcap 文件很好。不过,这条消息有点烦人。我认为可能是我需要包含一些神奇的数字来让wireshark 相信这是一个wireshark 捕获或类似的东西。我发现其他questions 的人收到此消息,因为他们没有干净地关闭捕获(但正如我所说,我这样做了(或者我是否需要明确关闭pcapy 打开的文件描述符?我找不到pcapy API 中关闭它的方法)。另外,我没有使用wireshark 进行捕获,因此可能是另一个问题)。
有人知道消息是什么原因吗?或者,有谁知道我该如何调试并找到导致wireshark弹出此消息的原因?
编辑
关闭dumperhere的Pcapy源代码。
【问题讨论】:
标签: python networking wireshark pcap libpcap