import dpkt, pcap from statlib import stats from socket import inet_ntop, AF_INET from optparse import OptionParser parser = OptionParser() parser.add_option("-f", "--file", action="store", type="string", dest="filename") (options, args) = parser.parse_args() pc = pcap.pcap(options.filename) frame = 0 cPktTs = 0 pPktTs = 0 timeDelta = [] pktLengths = [] for ts,data in pc: eth = dpkt.ethernet.Ethernet(data) pktFlags = eth.ip.tcp.flags pktSrcIP = inet_ntop(AF_INET,eth.ip.src) pktDstIP = inet_ntop(AF_INET,eth.ip.dst) pktSrcPort = eth.ip.tcp.sport pktDstPort = eth.ip.tcp.dport pktLen = eth.ip.len frame = frame + 1 pPktTs = cPktTs cPktTs = ts cpDeltaTime = cPktTs - pPktTs if frame > 1: timeDelta.append(cpDeltaTime) pktLengths.append(pktLen) print "DATA,MIN,MAX,MEAN,SDEV" print "Time,%f,%f,%f,%f" %(min(timeDelta),max(timeDelta),stats.mean(timeDelta),stats.stdev(timeDelta)) print "PktLength,%d,%d,%d,%f" %(min(pktLengths),max(pktLengths),stats.mean(pktLengths),stats.stdev(pktLengths))