1
使用Ruby 1.9和最新的gem install pcap
+修复编译(转换->ptr
/->len
到_PTR
/_LEN
),我发现,做一些简单的代码之后:为什么红宝石(ver 1.9)pcap宝石,在访问后挂起?
require 'pcap'
cap = Pcap::Capture.open_offline('1.dmp')
cap.each { |pkt| p pkt.src; }
exit
PCAP宝石不会离开块cap.each
,即输出:
...
213.248.106.202
192.168.1.50
213.248.106.202
192.168.1.50
^C
^C
^C
^C
^C
而且过程只能被kill -s KILL <process_id>
杀死。
有什么方法可以解决这个问题吗?
P.S. 1.dmp文件使用tcpdump -w 1.dmp
生成。
实际上,each_packet(至少在最新版本中)并不包含数字 - 当创建Pcap对象时,会有一个内部的@count变量被初始化。 – tjarratt 2011-05-30 04:35:30