rubyでhttpプロトコルをのぞいてsessionidを取得してみる
ruby/pcapというlibpcapを扱う便利なライブラリをみつけた。
http://www.goto.info.waseda.ac.jp/~fukusima/ruby/pcap-j.html
これは便利だ。これでsessionidをとっ捕まえてなにかを自動化できそうだ。
ruby/pcapインストール
$ sudo yum install libpcap-devel $ wget http://www.goto.info.waseda.ac.jp/~fukusima/ruby/ruby-pcap-0.6.tar.gz $ tar xvzf ruby-pcap-0.6.tar.gz $ cd pcap $ ruby extconf.rb $ make $ sudo make install
あとは80ポートを監視するだけ。
#!/usr/bin/ruby require 'pcap' def capture_data(interval) capdat = [] i = 0 pcaplet = Pcap::Capture.open_live("eth0", 1460,true,1000) access = Pcap::Filter.new('tcp and dst port 80',pcaplet) pcaplet.setfilter(access) pcaplet.each_packet { |pkt| if pkt.tcp_data_len>0 then capdat = pkt.tcp_data.scan(/sessionid=[0-9a-z]*/) i += 1 end break if i>interval } pcaplet.close return capdat.uniq end p capture_data(3);