]> git.somenet.org - pub/jan/netsec2.git/blob - exercise2/somedecode.py
redo traffic capture
[pub/jan/netsec2.git] / exercise2 / somedecode.py
1 #!/usr/bin/env python
2
3 import sys
4 import os
5 import signal
6 import csv
7 import binascii
8
9
10 def bladecode(filename):
11   with open(filename, 'rb') as csvfile:
12     spamreader = csv.reader(csvfile, delimiter=',', quotechar='"')
13     header = None
14     last = None
15     ln = 0
16     v = ""
17     
18     for row in spamreader:
19       if header is None:
20         header = row
21         continue
22       if last is None:
23         last = row
24         continue
25       
26       # if source != 192.168.67.84
27       if row[2] != '192.168.67.84':
28         continue
29
30       from pprint import pprint
31       pprint("SRC: %s, DSCP: %s" % (row[2], row[10]))
32 #      pprint ('diff:%f' % (float(row[1])-float(last_send[1])))
33       va = str(int((float(row[1])-float(last[1]))*10))
34 #      print row[0]+"-"+row[1]+"-"+row[10]
35 #      print str(float(row[1])-float(last[1]))+"-"+str(int(row[10])-int(last[10]))
36       #print " "+str(unichr(int(row[10])-int(last[10])+ord('A'))),
37 #      va = str(int((float(row[1])-float(last[1]))*10))
38       if va not in ["0","1"]:
39         print "error: "+va+row[0]+"-"+row[10]
40         va = "1"
41
42       v = v+va
43       
44       ln += 1
45       if ln == 8:
46 ##        print "char: "+v
47         n = int(v, 2)
48         print(chr(n))
49 #        print "dec: "+binascii.unhexlify('%x' % n)
50 #        print " "+binascii.unhexlify('%x' % n),
51         v = ""
52 #        print ""
53         ln = 0
54       last = row
55
56 if __name__ == "__main__":
57         def signal_handler(signal, frame):
58                 print('SIG received. exitting!')
59                 sys.exit(0)
60         signal.signal(signal.SIGINT, signal_handler)
61
62         bladecode("cool.dehexed.csv")
63