All pastes #562892 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-06-12 23:03 UTC
rendered paste body
#!/usr/bin/ruby

require 'pcaplet'
conn = Pcaplet.new('-s 10000')

MSN_REQUEST  = Pcap::Filter.new('tcp and dst port 1863', conn.capture)
MSN_RESPONSE = Pcap::Filter.new('tcp and src port 1863', conn.capture)

conn.add_filter(MSN_REQUEST | MSN_RESPONSE)
conn.each_packet do |pkt|
  data = pkt.tcp_data
  if data and data =~ /MSG(.*)\r\n\r\n(.*)/m
    header,body = $1,$2
    header =~ /^\s*([^\s]+?)\s/
    $user = $1
    header =~ /^Content-Type:\s*([a-zA-Z\-\/]+)/;
    $type = $1;
    next unless $type == "text/plain"
    puts $user.ljust(30)[0..29] + " : " + body
  end
end