blob: 7651e6c9a9d131c77b29376b8d629b0b17ac05b8 [file] [log] [blame]
vuko3cd087d2021-12-28 13:19:40 +01001import logging
2import pcapy
3import struct
4
5interface = 'wlan0'
6target = './dhcp-cap'
7logger = logging.getLogger()
8logger.setLevel(logging.DEBUG)
9logger.addHandler(logging.StreamHandler())
10
11def hwaddr_ascii(packet):
12 # picking up MAC directly from ethernet frame
13 return ':'.join('%02x' % ord(c) for c in packet[6:12])
14
15def capture_dhcp(itf):
16 f = open(target, 'w')
17 reader = pcapy.open_live(itf, 4096, False, 5000)
18 reader.setfilter('udp dst port 67')
19 def callback(header, packet):
20 hwaddr = hwaddr_ascii(packet)
21 logger.info('Captured dhcp request from %s', hwaddr)
22 f.write(hwaddr + '\n')
23 f.flush()
24 try:
25 while True:
26 reader.dispatch(1, callback)
27 except KeyboardInterrupt:
28 pass
29
30capture_dhcp('wlan0')