Я пытался найти способ прочитать часть pcap-файла, используя scapy.
Пример: У меня есть pcap-файл с 1000 строками.
Вопрос: Можно ли прочитать это по 10 штук, то есть последовательно прочитать 100 строк?
Сценарий:
Я читаю несколько файлы pcap и сравнение пакетов между ними. Для сравнения пакетов я использую index и вызываю указанный c пакет как pkt = packets_from_pcap_file_7[idx]
. Для использования индекса мне нужно прочитать pcap-файлы с rdpcap(FILENAME.pcap)
. Однако эта функция прочитает весь pcap-файл и вызовет MemoryError.
Поскольку я хочу сравнивать указанные c пакеты из разных файлов, мне трудно использовать RawPcapReader(FILENAME.pcap)
, где я могу просто выполнить итерацию через один указанный c пакет в то время как:
packets = RawPcapReader(FILENAME.pcap)
for pkt in packets:
pkt.doThings
Я опубликую очень медленное решение проблемы, мы должны перебирать весь pcap-файл для каждого пакета и повторять до указанный индекс:
def get_packet(idx):
packets = RawPcapReader("FILENAME.pcap")
counter = 0
for pkt in packets:
if counter == idx:
return pkt
counter += 1
Я мог бы разбить пакеты в терминале linux, но, поскольку это будет использоваться и для других, я бы хотел, чтобы скрипты выполняли всю работу. Я думаю, что есть гораздо более простое решение, которое я не смог найти. Заранее спасибо.