From f95945883c9e4832c846db723ac170b538519a2b Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Fri, 2 May 2025 10:40:07 -0500 Subject: [PATCH] Remove unused Cisco client metrics and update BSSID and channel counts in CSV output --- enrich.py | 7 ------- listener.py | 13 +++++++++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/enrich.py b/enrich.py index 8ca1b56..5e5a2c9 100755 --- a/enrich.py +++ b/enrich.py @@ -54,7 +54,6 @@ def analyze_pcap(pcapng_path, start_ts, end_ts, ap_bssid, ap_channel): ssid_clients = defaultdict(set) ssid_hidden_status = {} ssid_encryption_status = {} - cisco_ssid_clients = defaultdict(list) ssid_signals = defaultdict(list) ssid_to_bssids = defaultdict(set) bssid_to_ssid = {} @@ -74,7 +73,6 @@ def analyze_pcap(pcapng_path, start_ts, end_ts, ap_bssid, ap_channel): ssid_hidden_status, ssid_encryption_status, ssid_signals, - cisco_ssid_clients, cisco_reported_clients, ssid_packet_counts, ssid_clients @@ -107,8 +105,6 @@ def analyze_pcap(pcapng_path, start_ts, end_ts, ap_bssid, ap_channel): '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[ssid]), 2) if ssid in cisco_ssid_clients else 0, - 'CiscoMaxClients': max(cisco_ssid_clients[ssid]) if ssid in cisco_ssid_clients else 0, 'PacketCount': ssid_packet_counts[ssid] }) @@ -138,7 +134,6 @@ def main(): fieldnames = original_fields + [ 'ClientsOnAP', 'ClientsOnChannel', 'APsOnChannel', 'AvgAPSignal', 'StrongestAPSignal', 'UnlinkedDevices', - 'CiscoAvgReportedClients', 'CiscoMaxReportedClients', 'NumberofBSSIDsOnSSID', 'AvgSSIDSignal', 'MaxSSIDSignal', 'NumberofChannelsOnSSID', 'PacketCount' ] @@ -178,8 +173,6 @@ def main(): 'AvgAPSignal': avg_signal, 'StrongestAPSignal': strongest_signal, 'UnlinkedDevices': unlinked, - 'CiscoAvgReportedClients': cisco_avg_reported_clients, - 'CiscoMaxReportedClients': cisco_max_reported_clients, 'NumberofBSSIDsOnSSID': num_bssids, 'AvgSSIDSignal': average_signal, 'MaxSSIDSignal': max_ssid_signal, diff --git a/listener.py b/listener.py index 3dae008..4d10549 100755 --- a/listener.py +++ b/listener.py @@ -160,10 +160,15 @@ def write_csv(outfile): "AvgSSIDSignal": round(sum([sum(v)/len(v) for v in ssid_signals.values() if v]) / len(ssid_signals) if ssid_signals else 0, 2), "MaxSSIDSignal": max([max(v) for v in ssid_signals.values() if v], default=0), "ClientsOnAP": len([mac for mac, count in ap_clients[target_ap_bssid].items() if count > 3]), - "CiscoAvgReportedClients": "N/A", - "CiscoMaxReportedClients": "N/A", - "NumberofBSSIDsOnSSID": "N/A", - "NumberofChannelsOnSSID": "N/A", + "NumberofBSSIDsOnSSID": len([ + bssid for bssid, ssid in ssid_map.items() + if target_ap_bssid in ssid_map and ssid == ssid_map.get(target_ap_bssid) + ]) if target_ap_bssid and target_ap_bssid in ssid_map else 0, + "NumberofChannelsOnSSID": len(set([ + bssid_channels.get(bssid) + for bssid, ssid in ssid_map.items() + if target_ap_bssid in ssid_map and ssid == ssid_map.get(target_ap_bssid) + ])) if target_ap_bssid and target_ap_bssid in ssid_map else 0, "UnlinkedDevices": len(unlinked_candidates), "Deadpoints": len([ap for ap in aps if is_deadpoint(ap)]) }