Add packet count tracking to SSID metrics in analyze_pcap function

This commit is contained in:
Yaro Kasear 2025-04-21 12:55:33 -05:00
parent 1d2fafb4e3
commit e3c3647a7e

View file

@ -305,6 +305,7 @@ def analyze_pcap(pcapng_path, start_ts, end_ts, ap_bssid, ap_channel):
ssid_to_bssids = defaultdict(set)
bssid_to_ssid = {}
cisco_reported_clients = []
ssid_packet_counts = defaultdict(int)
try:
# Filter packets manually by timestamp
@ -374,7 +375,7 @@ def analyze_pcap(pcapng_path, start_ts, end_ts, ap_bssid, ap_channel):
if ssid:
ssid_hidden_status[ssid] = hidden_ssid
ssid_packet_counts[ssid] += 1
# Cisco Client Count
if tag_number == '133':
@ -430,7 +431,8 @@ def analyze_pcap(pcapng_path, start_ts, end_ts, ap_bssid, ap_channel):
'Min_Signal': min(signals) if signals else 0,
'Clients_Seen': len(ssid_clients.get(ssid, [])),
'CiscoAvgClients': round(mean(cisco_reported_clients), 2) if cisco_reported_clients else 0,
'CiscoMaxClients': max(cisco_reported_clients) if cisco_reported_clients else 0
'CiscoMaxClients': max(cisco_reported_clients) if cisco_reported_clients else 0,
'PacketCount': ssid_packet_counts[ssid]
})
finally:
@ -516,7 +518,7 @@ def main():
with open(ssid_outfile, 'w', newline='', encoding='utf-8') as f:
fieldnames = [
'SSID', 'Hidden', 'Open', 'BSSID_Count', 'BSSIDs', 'Avg_Signal', 'Max_Signal',
'Min_Signal', 'Clients_Seen', 'CiscoAvgClients', 'CiscoMaxClients'
'Min_Signal', 'Clients_Seen', 'CiscoAvgClients', 'CiscoMaxClients', 'PacketCount'
]
ssid_writer = csv.DictWriter(f, fieldnames=fieldnames)
ssid_writer.writeheader()