電子書籍の厳選無料作品が豊富!

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


以上、宜しくお願い致します。

A 回答 (2件)

libpcap-rubyのバグですかね?



http://bugs.debian.org/cgi-bin/bugreport.cgi?bug …
(libpcap-ruby/0.6-9.1では問題なく動いています。)

この回答への補足

バージョンを下げなくても、ファイル修正でいけるみたいです。
↓のサイト参照。

http://d.hatena.ne.jp/takuma104/20080210/1202638 …

補足日時:2010/08/18 03:36
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/08/08 20:06

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

この回答への補足

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

補足日時:2010/08/06 21:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!