Ruby PCAP读取完整的捕获文件

Ruby PCAP读取完整的捕获文件,ruby,pcap,Ruby,Pcap,我正在使用Ruby处理一些PCAP文件。我需要阅读一个完整的文件并分析每个pcaket require 'pcap' inFile = Pcap::Capture.open_offline("1.pcap") inFile.loop(-1) do |pkt| #Process packet. end 读取所有数据包后,上述代码不会退出。根据Ruby pcap文档,“负计数将永远或直到达到EOF为止处理数据包”。这里可能有什么问题。我正在使用下面的一个变体来进行即席数据包分析。对我有用。Ru

我正在使用Ruby处理一些PCAP文件。我需要阅读一个完整的文件并分析每个pcaket

require 'pcap'

inFile = Pcap::Capture.open_offline("1.pcap")

inFile.loop(-1) do |pkt|
#Process packet.
end

读取所有数据包后,上述代码不会退出。根据Ruby pcap文档,“负计数将永远或直到达到EOF为止处理数据包”。这里可能有什么问题。

我正在使用下面的一个变体来进行即席数据包分析。对我有用。Ruby 1.9.3-p125,pcaprub 0.11.2

#!/opt/local/bin/ruby1.9
require 'pcaprub'

fn = ARGV[1] || "pcap-000"
pc = Pcap.open_offline(ARGV[0])
pc.each do |pk|
  fn1 = fn.succ!
  File.binwrite(fn1, pk)
end

我假设示例程序中缺少的
do
不是问题所在,所以我只是在那里为您编辑了它。一旦这个bug被修复,我使用的垃圾堆工作得很好。因此,我假设问题取决于所讨论的特定转储。在这种情况下,您可能需要联系libpcap开发人员,看看他们是否能够发现您的转储文件存在问题,但我的第一个猜测是转储已损坏。您使用的是哪个PCAP库?你看过其他的宝石吗@萨诺尔德:那将是一个不错的选择answer@andomar,我对将模糊的猜测作为答案感到不安——如果@Indika报告转储文件太无效而无法解析,我会很高兴地将其移动到一个答案:)但与此同时,我不相信我是对的。感谢所有的评论,并对程序中的错误表示抱歉。我在[link]尝试了PCAP文件。我在Wireshark示例捕获中尝试了几个捕获文件。但是得到了同样的结果。我将gempcap(0.7.3)与Ruby 1.9.2一起使用。