如何使用dpkt获取.pcap文件的快照长度?

时间:2014-10-19 16:50:11

标签: python networking pcap dpkt

我正在尝试获取.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()

1 个答案:

答案 0 :(得分: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

会起作用;尝试一下。