0

我正在尝试获取 .pcap 文件的快照长度。我已访问 pcap 和 pcap_snapshot 的手册页,但无法使该功能正常工作。

我正在运行一个 VM 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()
4

1 回答 1

1

除非您使用 C、C++ 或 Objective-C 编写代码,否则不要先阅读手册页。

如果您不使用 C 风格的语言,则需要使用 libpcap 的包装器,并且应首先阅读包装器的文档,因为您不会从 libpcap 调用 C 函数,您将从包装器调用函数。如果您尝试在 Python 中导入 C 语言头文件,例如 pcap/pcap.h,这将不起作用。如果您尝试直接调用 C 语言函数,例如pcap_snapshot(),那也不起作用。

Dpkt 不是包装器;相反,它是一个解析数据包和读取 pcap 文件的库,读取 pcap 文件的代码独立于 libpcap。因此,它不会为 libpcap API 提供包装器,例如pcap_snapshot().

Dpkt 的文档非常有限。快速浏览一下它的 pcap.py 模块似乎表明

print "Snapshot length = ", myFile.snaplen

会工作; 试试看。

于 2014-10-19T18:55:52.413 回答