我正在使用Scapy的sniff()函数来嗅探来自以太网的数据包。我将它存储在一个名为pkt的变量中。后来我想通过在另一个变量buffpkt中附加pkt的内容来制作相同的副本。最初我将两个变量都声明为列表,但是一旦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来列出所有被嗅探的数据包,但我不能。有什么建议吗?
答案 0 :(得分:1)
只需将一个列表分配给另一个列表,您只需将第一个列表指向第二个列表即可。要复制列表,您可以使用切片运算符,如下所示:
buffpkt = pkt[:]
现在buffpkt
将是副本。
答案 1 :(得分:1)
使用标准库copy
在Python中复制数据结构:http://docs.python.org/library/copy.html