Remove unused Cisco client metrics and update BSSID and channel counts in CSV output

This commit is contained in:
Yaro Kasear 2025-05-02 10:40:07 -05:00
parent 689fd80e29
commit f95945883c
2 changed files with 9 additions and 11 deletions

View file

@ -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,

View file

@ -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)])
}