require 'win32ole' USAGE = "prpidx <capture-filename>" endl = "\n" tab = "\t" def printPacket(packet) endl = "\n" tab = "\t" $stdout << packet.ID << tab << packet.Timestamp << tab \ << packet.Length << tab << packet.Type << tab \ << packet.Description << endl end if ARGV.length != 1 puts USAGE exit 1 end InputFile = ARGV[0] UnsniffDB = WIN32OLE.new("Unsniff.Database") UnsniffDB.Open(InputFile) Count = UnsniffDB.PacketCount $stdout << "Number of Packets = " << Count << endl PacketStore = UnsniffDB['PacketIndex'] (0..Count-1).each{ |idx| printPacket(PacketStore.Item(idx)) } UnsniffDB.Close()