From 5f42fb7d9e1dd4452cc32a54fc792088da220908 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Thu, 17 Apr 2025 15:16:17 -0500 Subject: [PATCH] Refactor analyze_pcap function to improve SSID reporting; include BSSID list and adjust Cisco client metrics calculation. --- enrich.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/enrich.py b/enrich.py index ac07be9..d31f331 100755 --- a/enrich.py +++ b/enrich.py @@ -417,18 +417,20 @@ def analyze_pcap(pcapng_path, start_ts, end_ts, ap_bssid, ap_channel): signals = ssid_signals.get(ssid, []) ssid_summary.append({ 'SSID': ssid, - 'Hidden': ssid_hidden_status.get(ssid, False), + 'Hidden': ssid == '', 'BSSID_Count': len(bssids), + 'BSSIDs': ";".join(sorted(bssids)), 'Avg_Signal': mean(signals) if signals else 0, 'Max_Signal': max(signals) if signals else 0, 'Min_Signal': min(signals) if signals else 0, 'Clients_Seen': len(ssid_clients.get(ssid, [])), - 'CiscoAvgClients': round(mean(cisco_ssid_clients.get(ssid, [])), 2) if cisco_ssid_clients.get(ssid) else 0, - 'CiscoMaxClients': max(cisco_ssid_clients.get(ssid, [])) if cisco_ssid_clients.get(ssid) else 0 + 'CiscoAvgClients': round(mean(cisco_reported_clients), 2) if cisco_reported_clients else 0, + 'CiscoMaxClients': max(cisco_reported_clients) if cisco_reported_clients else 0 }) + finally: cap.close() @@ -509,7 +511,7 @@ def main(): ssid_outfile = args.output.replace('.csv+rf.csv', '-ssid-metrics.csv') with open(ssid_outfile, 'w', newline='', encoding='utf-8') as f: fieldnames = [ - 'SSID', 'Hidden', 'BSSID_Count', 'Avg_Signal', 'Max_Signal', + 'SSID', 'Hidden', 'BSSID_Count', 'BSSIDs', 'Avg_Signal', 'Max_Signal', 'Min_Signal', 'Clients_Seen', 'CiscoAvgClients', 'CiscoMaxClients' ] ssid_writer = csv.DictWriter(f, fieldnames=fieldnames)