1 import sys
2 from datetime import datetime
3 import threading, signal
4 from killerbee import *
5
6
7 triggers = []
8
9
10
11
13 timeLabel = datetime.now().strftime('%Y%m%d-%H%M')
14 print 'Cap%s: Launching a capture on channel %s.' % (dev, capChan)
15 fname = 'zb_c%s_%s.pcap' % (capChan, timeLabel)
16 signal.signal(signal.SIGINT, interrupt)
17 trigger = threading.Event()
18 triggers.append(trigger)
19 CaptureThread(capChan, dev, fname, trigger).start()
20
21
27
28
29
31 - def __init__(self, channel, devstring, fname, trigger):
39 self.kb = KillerBee(device=self.devstring, datasource="Wardrive Live")
40 self.kb.set_channel(self.channel)
41 self.kb.sniffer_on()
42 print "Capturing on \'%s\' at channel %d." % (self.kb.get_dev_info()[0], self.channel)
43
44 while not self.trigger.is_set():
45 packet = self.kb.pnext()
46 if packet != None:
47 self.packetcount+=1
48 try: self.kb.dblog.add_packet(full=packet)
49 except: pass
50 self.pd.pcap_dump(packet[0])
51
52 self.kb.sniffer_off()
53 self.kb.close()
54 self.pd.close()
55 print "%d packets captured" % self.packetcount
56