Ruby PCAP读取完整的捕获文件

时间:2011-02-06 09:09:29

标签: 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”。这可能是什么问题。

1 个答案:

答案 0 :(得分:2)

我正在使用以下的变体进行ad-hoc数据包分析。适合我。 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