Вы можете читать файлы pcap с помощью scapy следующим образом:
pcap_contents = rdpcap("/path/to/foo.pcap")
source: https://scapy.readthedocs.io/en/latest/usage.html#reading-pcap-files
Это вернет scapy.plist.PacketList
, который вы можете перебирать, используя стандартные методы PythonНапример, цикл for
:
for packet in pcap_contents:
print(len(packet))
Однако ваш цикл ожидает, что packet_list
будет содержать наборы (packet, dev_name)
:
for i, (packet, dev_name) in enumerate(packet_list):
Мой случайный образец pcap-файлаКонечно, данные такого типа не создавались, поэтому вам, вероятно, нужно сопоставить каждый пакет сначала с dev_name
, чтобы получить список (packet, dev_name)
tuple
s. Это можно сделать с помощью стандартных методов Python, например, с for
циклами, или, если у вас есть список dev_names
, где индексы совпадают, вы можете zip
списки:
packets = [IP()/TCP(), IP()/UDP()]
dev_names = ['foo', 'bar']
packet_list = zip(packets, dev_names)
filter_con
не используется, поэтому я не могу это комментировать.