Я пытаюсь создать очень простой файл PCAP (1 сообщение UDP).
Пробовал использовать dpkt (pcap.Writer), но безуспешно, документации мало.
Может ли кто-нибудь опубликовать работающий пример?
(или любой другой вариант - я не привязан к dpkt)
создание файла pcap с использованием python
Ответы (3)
Вы можете использовать Scapy.
https://scapy.readthedocs.io/en/latest/installation.html
Если вы используете Python 3:
pip3 install scapy
Затем в Питоне:
from scapy.all import wrpcap, Ether, IP, UDP
packet = Ether() / IP(dst="1.2.3.4") / UDP(dport=123)
wrpcap('foo.pcap', [packet])
вам нужно записать пакет в формат libpcap
Global Header + Packet Header + Packet Data + Packet Header + Packet Data эта ссылка должна вам помочь
http://www.codeproject.com/Tips/612847/Generate-a-quick-and-easy-custom-pcap-file-using-P
шапка конструкции (неработающая ссылка) показывает, как использовать construct для этого. Construct также имеет рудиментарный IP-стек (ссылка не работает) пример. Преимущество Construct в том, что он симметричен, т. е. вы можете поместить в него данные, преобразовать их в набор объектов Python, а затем вы можете выгрузить объекты, чтобы снова создать исходный большой двоичный объект данных.