tcpports.rb
# ------------------------------------------------------------------
# tcpports.rb	Print TCP Port Information 
#	usage : tcpports <capture-file> 
#
#
# ------------------------------------------------------------------
require 'win32ole'
 
USAGE = "tcpports <capture-filename> "
 
if ARGV.length != 1
	puts USAGE
	exit 1
end
 
InputFile = ARGV[0]
UnsniffDB = WIN32OLE.new("Unsniff.Database")
UnsniffDB.Open(InputFile)
 
PacketIndex = UnsniffDB.PacketIndex
(0..PacketIndex.Count-1).each do |idx|
	pkt = PacketIndex.Item(idx)
	layers = pkt.Layers
	layers.each do |lyr| 
		if lyr.Name == "TCP"
			sport = lyr.FindField("Src Port")
			dport = lyr.FindField("Dest Port")
			print "s: #{sport.Value}\t\td: #{dport.Value}\n"
		end
	end
end
 
UnsniffDB.Close()