Enhance BSSID retrieval in get_connected_bssid function using regex for improved accuracy; clean up imports.

This commit is contained in:
Yaro Kasear 2025-05-01 10:25:21 -05:00
parent 7daa6e1543
commit 9665180077

View file

@ -1,14 +1,16 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os
import signal
import csv import csv
import sys import os
import re
import signal
import subprocess import subprocess
import sys
import time import time
from scapy.all import sniff, Dot11, RadioTap
from argparse import ArgumentParser
from collections import defaultdict from collections import defaultdict
from datetime import datetime from datetime import datetime
from argparse import ArgumentParser from scapy.all import sniff, Dot11, RadioTap
# === Globals === # === Globals ===
running = True running = True
@ -151,14 +153,15 @@ def reset_interface(interface):
def get_connected_bssid(interface): def get_connected_bssid(interface):
try: try:
out = subprocess.check_output(["iw", interface, "link"]).decode() out = subprocess.check_output(["iw", interface, "link"]).decode()
for line in out.splitlines(): match = re.search(r"Connected to ([0-9a-f:]{17})", out.lower())
if "Connected to" in line: if match:
return line.strip().split()[-1].lower() return match.group(1)
print("[!] No valid MAC address found in iw link output.")
return None
except Exception as e: except Exception as e:
print(f"[!] Failed to get connected BSSID for {interface}: {e}") print(f"[!] Failed to get connected BSSID for {interface}: {e}")
return None return None
# === Main === # === Main ===
def main(): def main():
parser = ArgumentParser() parser = ArgumentParser()