1

ruby 1.9 と最新のgem install pcap修正 + コンパイル ( ->ptr/->len_PTR/に変換_LEN) を使用すると、単純なコードを実行した後に次のことがわかりました。

require 'pcap'
cap = Pcap::Capture.open_offline('1.dmp')
cap.each { |pkt| p pkt.src; }

exit

Pcap gem が block を離れない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>
これを修正する方法はありますか?

を使用して生成された PS 1.dmp ファイルtcpdump -w 1.dmp

4

1 に答える 1

1

Pcap::Capture#each または Pcap::Capture#each_packet は、オプションのカウント引数を取ります。-1 の場合、EOF までループします。

それぞれに番号を渡してみて、何が起こるかを確認できます。

cap.each_packet(4) {|pkt|p pkt.src}

ハングする場合は、拡張コードに問題がある可能性があります。

于 2010-01-15T03:09:38.170 に答える