Похоже, ошибка заключалась в том, что модуль запросов Python не захватывал весь поток, а некоторые байты отсутствовали. Используя
curlSubProcess = subprocess.Popen(['curl', 'url/pcap/all_packets.pcapng'], stdout=subprocess.PIPE, bufsize=1)
curlSubProcess.stdout.read(lengthnext)
в цикле while, где lengthnext
- длина следующего пакета, я смог правильно его прочитать. Затем я проанализировал эти двоичные данные блока с классом, который я написал, и пакетными данными с scapy, и он работает, как и ожидалось.