- pktcopy.rb
# ------------------------------------------------------------------
# pktcopy.rb Copies given packets from file-1 to file-2
# usage : pktcopy <from-file> <to-file> <pkts-csv>
#
# ------------------------------------------------------------------
require 'win32ole'
USAGE = "pktcopy <from-file> <to-file> <packet-list>"
if ARGV.length != 3
puts USAGE
exit 1
end
FromFile = ARGV[0]
ToFile = ARGV[1]
PktIDs = ARGV[2]
# Create required database objects
FromDB = WIN32OLE.new("Unsniff.Database")
ToDB = WIN32OLE.new("Unsniff.Database")
FromDB.Open(FromFile)
if File.exists?(ToFile)
ToDB.Open(ToFile)
else
ToDB.New(ToFile)
end
FromPacketIndex = FromDB.PacketIndex
PacketIDArr = PktIDs.chomp.split(/\s*,\s*/)
PacketIDArr.each { |idx|
pkt2copy = FromPacketIndex.Item(idx)
ToDB.AddPacket(pkt2copy)
}
FromDB.Close()
ToDB.Save()
print "Copied #{PacketIDArr.length} packets to #{ToFile}\n"