• 締切済み

rubyでパケットキャプチャ出来るプログラムを実行したところ、以下のよ

rubyでパケットキャプチャ出来るプログラムを実行したところ、以下のようなエラーメッセージが出力されました。 上位4つのwaraningとno suitable device foundのエラーを回避する策を教えて頂きたいです。 $ ruby packet.rb /usr/local/lib/site_ruby/1.8/i486-linux/pcap.so: warning: do not use Fixnums as Symbols /usr/local/lib/site_ruby/1.8/i486-linux/pcap.so: warning: do not use Fixnums as Symbols /usr/local/lib/site_ruby/1.8/i486-linux/pcap.so: warning: do not use Fixnums as Symbols /usr/local/lib/site_ruby/1.8/pcaplet.rb:41:in `lookupdev': no suitable device found (Pcap::PcapError) from /usr/local/lib/site_ruby/1.8/pcaplet.rb:41:in `initialize' from packet.rb:12:in `new' from packet.rb:12 プログラムは、以下のサイトにあるものを利用しています。 http://d.hatena.ne.jp/tullio/20080217/1203261760 #!/usr/local/bin/ruby require 'pcaplet' include Pcap class Time # tcpdump style format def to_s sprintf "%0.2d:%0.2d:%0.2d.%0.6d", hour, min, sec, tv_usec end end pcaplet = Pcaplet.new pcaplet.each_packet { |pkt| print "#{pkt.time} #{pkt}" if pkt.tcp? print " (#{pkt.tcp_data_len})" print " ack #{pkt.tcp_ack}" if pkt.tcp_ack? print " win #{pkt.tcp_win}" end if pkt.ip? print " (DF)" if pkt.ip_df? end print "\n" } pcaplet.close 以上、宜しくお願い致します。

みんなの回答

回答No.2

libpcap-rubyのバグですかね? http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548019 (libpcap-ruby/0.6-9.1では問題なく動いています。)

monolith1978
質問者

お礼

バージョンを下げて実行したらうまくいったっぽいです。 ご指摘ありがとうございます。助かりました。

monolith1978
質問者

補足

バージョンを下げなくても、ファイル修正でいけるみたいです。 ↓のサイト参照。 http://d.hatena.ne.jp/takuma104/20080210/1202638583

回答No.1

root権限で実行するとどうなりますか?

monolith1978
質問者

補足

root権限で実行すると以下のようになります。 sudo ruby packet.rb /usr/local/lib/site_ruby/1.8/i486-linux/pcap.so: warning: do not use Fixnums as Symbols /usr/local/lib/site_ruby/1.8/i486-linux/pcap.so: warning: do not use Fixnums as Symbols /usr/local/lib/site_ruby/1.8/i486-linux/pcap.so: warning: do not use Fixnums as Symbols ruby: symbol lookup error: /usr/local/lib/site_ruby/1.8/i486-linux/pcap.so: undefined symbol: pcap_read

関連するQ&A

専門家に質問してみよう