# -*- coding: utf-8 -*-
import socket
import dpkt
import sys
import os
import time
def get_flags_num(pcap_name):
pcapReader = dpkt.pcap.Reader(file(pcap_name, "rb"))
fp_syn = open('excel\\syn.csv','a+')
fp_fin = open('excel\\fin.csv','a+')
fp_rst = open('excel\\rst.csv','a+')
for ts, data in pcapReader:
ether = dpkt.ethernet.Ethernet(data)
if ether.type == dpkt.ethernet.ETH_TYPE_IP:
ip = ether.data
src = socket.inet_ntoa(ip.src)
dst = socket.inet_ntoa(ip.dst)
data = ip.data
if isinstance(data, dpkt.tcp.TCP):
dport = data.dport
sport = data.sport
if (sport == 2404 or dport == 2404):
packet_type = 'normal'
timeStamp = ts
timeArray = time.localtime(timeStamp)
otherStyletime = time.strftime("%Y-%m-%d %H:%M", timeArray)
if data.flags & dpkt.tcp.TH_SYN :
packet_type = 'syn'
fp_syn.write(' %s,%s,%s,%s,%s,%s\n' % (src, sport, dst, dport, packet_type, otherStyletime))
if data.flags & dpkt.tcp.TH_FIN:
packet_type = 'fin'
fp_fin.write(' %s,%s,%s,%s,%s,%s\n' % (src, sport, dst, dport, packet_type, otherStyletime))
if data.flags & dpkt.tcp.TH_RST:
packet_type = 'reset'
fp_rst.write(' %s,%s,%s,%s,%s,%s\n' % (src, sport, dst, dport, packet_type, otherStyletime))
fp_rst.close()
fp_fin.close()
fp_syn.close()
if __name__ == '__main__':
if len(sys.argv) == 2:
file_list = os.listdir(sys.argv[1])
for pcap in file_list:
pcap_addr = sys.argv[1] + '\\' + pcap
get_flags_num(pcap_addr)
else:
print "argvs:input_folder"