Scapy рассчитывает общую длину пакета для каждого IP-адреса - PullRequest
1 голос
/ 22 февраля 2020

Текущий код ниже может читать файл pcap и извлекать IP-адреса назначения и размер пакета.

Что я хочу сделать, так это просто посчитать каждый IP-адрес назначения и получить общее количество пакетов для каждого IP-адрес назначения

Существует несколько других способов загрузки файла pcap с использованием Scapy, но они загружают все в память, например, rdpcap, хотя даже функция сниффинга занимает слишком много времени для большого файла pcap, это кажется лучшим решением в том смысле, что Обходит любой анализ полезной нагрузки

Вход

dic = {}

IP.payload_guess = []

#ips = set((p[IP].dst,p[IP].len) for p in PcapReader(file) if IP in p)
ips = set(p[IP].dst for p in PcapReader(file) if IP in p)

for ip in ips:
    list_ips.append(ip)
    dic[ip] = 1

Выход

('192.168.1.238', 658)
('255.255.255.255', 328)
('89.30.121.150', 109)
('89.30.121.150', 270)
('192.168.1.238', 417)
('89.30.121.150', 378)
('89.30.121.150', 316)
('89.30.121.150', 287)
('192.168.1.1', 66)
('89.30.121.150', 48)
('89.30.121.150', 262)
('89.30.121.150', 107)
('89.30.121.150', 498)
('89.30.121.150', 40)
('192.168.1.238', 426)
('192.168.1.238', 328)
('89.30.121.150', 319)
('192.168.1.238', 48)
('192.168.1.238', 478)
('89.30.121.150', 45)
('192.168.1.238', 44)
('89.30.121.150', 239)
('89.30.121.150', 186)
('192.168.1.238', 884)
('192.168.1.238', 40)
('89.30.121.150', 552)
('89.30.121.150', 227)
('89.30.121.150', 318)
('89.30.121.150', 223)
('0.0.0.0', 328)
('89.30.121.150', 44)
('192.168.1.238', 82)
('192.168.1.238', 584)
('89.30.121.150', 238)
('192.168.1.238', 65)
('89.30.121.150', 379)
('89.30.121.150', 438)

Как видно из выходных данных IP-адрес назначения, а второй столбец представляет собой пакет len (мне нужен полный пакет len для каждого IP-адреса)

Я предполагаю, что мне нужно каким-то образом использовать карту

...