import pcap, dpkt from scapy.all import Ether, ARP from time import sleep def process_packet(info, timestamp, packet): src = packet.src dst = packet.dst print(f"{timestamp} | {src}[{1 if is_ap(src) else 0}] --> {packet.dst}[{1 if is_ap(dst) else 0}]") #packet.display() #sleep(.5) def get_scapy_packet(raw_packet): eth_frame = dpkt.ethernet.Ethernet(raw_packet) return Ether(raw_packet) def is_ap(mac_address): aruba_ouis = ['94:60:D5', '48:2F:6B', '94:64:24', 'A8:5B:F7', 'F0:61:C0', 'EC:50:AA', '6C:C4:9F'] for oui in aruba_ouis: if oui in mac_address: return True return False def sniff(interface, timeout_ms=500): info = {} sniff = pcap.pcap(name=interface, promisc=True, timeout_ms=timeout_ms) for timestamp, raw_packet in sniff: packet = get_scapy_packet(raw_packet) info = process_packet(info, timestamp, packet)