From 9665180077a5987de040eb52605f3e106c7853fb Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Thu, 1 May 2025 10:25:21 -0500 Subject: [PATCH] Enhance BSSID retrieval in get_connected_bssid function using regex for improved accuracy; clean up imports. --- listener.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/listener.py b/listener.py index b7bb06d..0ff3c9a 100755 --- a/listener.py +++ b/listener.py @@ -1,14 +1,16 @@ #!/usr/bin/env python3 -import os -import signal import csv -import sys +import os +import re +import signal import subprocess +import sys import time -from scapy.all import sniff, Dot11, RadioTap + +from argparse import ArgumentParser from collections import defaultdict from datetime import datetime -from argparse import ArgumentParser +from scapy.all import sniff, Dot11, RadioTap # === Globals === running = True @@ -151,14 +153,15 @@ def reset_interface(interface): def get_connected_bssid(interface): try: out = subprocess.check_output(["iw", interface, "link"]).decode() - for line in out.splitlines(): - if "Connected to" in line: - return line.strip().split()[-1].lower() + match = re.search(r"Connected to ([0-9a-f:]{17})", out.lower()) + if match: + return match.group(1) + print("[!] No valid MAC address found in iw link output.") + return None except Exception as e: print(f"[!] Failed to get connected BSSID for {interface}: {e}") return None - # === Main === def main(): parser = ArgumentParser()