Как получить длину снимка файла .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()

person John    schedule 19.10.2014    source источник


Ответы (1)


Не читайте сначала справочную страницу, если только вы не пишете код на 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

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

person Community    schedule 19.10.2014