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
以上、宜しくお願い致します。
お礼
ご回答ありがとうございます。実はwireshark自体も昨日初めて知ったのですが、いろいろ検索してここまで着ました。 NetStat -nで見たところ、127.0.0.1:3000と127.0.0.1:1040の通信がEstablishedになっていたのでこれだと思います。どちらがどちらのソフトなのかは分かりません。もう少し頑張ってみます。
補足
ちなみにソフト間のパケットとはWiresharkでどのように設定するのでしょうか? Lisに出てくるのはLANカードやモデムなどのハードばかりです。 お願いばかりで恐縮ですが何卒よろしくお願いします。 それからnetstatの-vbオプションでプロセスIDが出てきたので、どのポートがどのソフトかは特定できました。 あとはパケットさえ拾えれば解決なのですが。