使用scapy读取Python中的.pcap文件时出现问题



我正在尝试创建一个程序,在该程序中,我必须读取pcap文件,然后计算与某些IP相关的数据包数量。我不习惯用Python编程,但我必须使用它,因为我在树莓派上使用它,根据输出,我必须控制几个引脚。

现在我有这个,但我有一个错误,我不知道如何解决它

from scapy.all import *
from scapy.utils import RawPcapReader
from scapy.layers.l2 import Ether
from scapy.layers.inet import IP, TCP
def read_pcap(name_pcap):
print("Opening", name_pcap)

client_1 = '192.168.4.4:48878'
server = '10.0.0.2:80'

(client_1_ip, client_1_port) = client_1.split(':')
(server_ip, server_port) = server.split(':')

counter = 0

for(pkt_data, pkt_metadata,) in RawPcapReader(name_pcap):
counter += 1

ether_pkt = Ether(pkt_data)
# Below here are functions to filter the data


read_pcap("captura.pcap")

错误是这样的:

名称错误:名称"数据包"未定义

错误似乎在此(for(pkt_data, pkt_metadata,) in RawPcapReader(name_pcap):(行中。

有人知道怎么解决吗?

Thnak你:(

正如Cargenicate所指出的,这是一个已知的错误。它固定在https://github.com/secdev/scapy/commit/ff644181d9bee35979a84671690d8cd1aa1971fa

您可以使用开发版本(overhttps://scapy.readthedocs.io/en/latest/installation.html#current-开发版本(同时

卸载以前的版本&从安装最新版本https://pypi.org/project/scapy/

pip install scapy==2.5.0rc1

这将修复错误

最新更新