0

我正在使用 Scapy 的 sniff() 函数从以太网中嗅探数据包。我将它存储在一个名为 pkt 的变量中。稍后我想通过将 pkt 的内容附加到另一个变量 buffpkt 中来制作相同的副本。最初我将这两个变量都声明为列表,但是一旦 pkt 存储了 sniff() 输出,它就会将其类​​型更改为实例。下面是代码。

pkt=[]
buffpkt=[]
pkt=sniff(prn=lambda x:x.sprintf("{IP : %IP.src%  %IP.dst%\n\n} "),timeout=5,store=1)
buffpkt=pkt

我想通过将结果附加到 buffpkt 来列出所有嗅探到的数据包,但我不能。有什么建议么?

4

2 回答 2

1

通过将一个列表分配给另一个列表,您只需使第一个列表指向第二个列表。要复制列表,您可以使用切片运算符,如下所示:

buffpkt = pkt[:]

现在buffpkt将是一个副本。

于 2012-08-01T08:25:25.270 回答
1

使用标准库copy在 Python 中复制数据结构:http: //docs.python.org/library/copy.html

于 2012-08-01T08:27:23.780 回答