Как получить длину снимка файла.pcap с помощью dpkt?

Я пытаюсь получить снимок длины файла.pcap. Я перешел на страницу справочника по pcap и pcap_snapshot, но не смог заставить функцию работать.

Я использую виртуальную машину Fedora20, и она написана на python

Сначала я пытаюсь импортировать файл, который, по словам руководства, должен быть включен, но я получаю синтаксическую ошибку при импорте и pcap_snapshot(). Я новичок в python, поэтому представляю, что это что-то простое, но не уверен, что это такое. Любая помощь высоко ценится!

import <pcap/pcap.h>
import dpkt

myPcap = open('mycapture.pcap')
myFile = dpkt.pcap.Reader(myPcap)

print "Snapshot length = ", myFile.pcap_snapshot()

1 ответ

Решение

Не читайте man-страницу сначала, если вы не пишете код на C, C++ или Objective-C.

Если вы не используете язык C, вам нужно использовать оболочку для libpcap, и вам следует сначала прочитать документацию для оболочки, так как вы не будете вызывать функции C из libpcap, вы будете вызов функций из оболочки. Если вы попытаетесь импортировать файл заголовка языка C, такой как pcap/pcap.h, в Python, это не будет работать. Если вы попытаетесь напрямую вызвать функцию языка C, такую ​​как pcap_snapshot(), это тоже не сработает.

Dpkt не является оберткой; вместо этого это библиотека для анализа пакетов и чтения файлов pcap, причем код для чтения файлов pcap не зависит от libpcap. Поэтому он не будет предлагать оболочки для API-интерфейсов libpcap, таких как pcap_snapshot(),

Документация Dpkt, ну, довольно ограничена. Беглый взгляд на его модуль pcap.py показывает, что

print "Snapshot length = ", myFile.snaplen

должно сработать; попробуй.

Другие вопросы по тегам