gpt4 book ai didi

python - 如何 pickle scapy 数据包?

转载 作者:太空狗 更新时间:2023-10-29 17:45:38 25 4
gpt4 key购买 nike

我需要 pickle 一个 scapy 数据包。大多数时候这是可行的,但有时 pickler 会提示函数对象。根据经验:ARP 数据包 pickle 很好。一些 UDP 数据包有问题。

最佳答案

我的解决方案(受到 scapy 邮件列表的启发)如下:

class PicklablePacket:
"""A container for scapy packets that can be pickled (in contrast
to scapy packets themselves)."""
def __init__(self, pkt):
self.contents = bytes(pkt)
self.time = pkt.time

def __call__(self):
"""Get the original scapy packet."""
pkt = scapy.Ether(self.contents)
pkt.time = self.time
return pkt

任何我希望通过Queue传递scapy Packet的地方,我只需将它包装在PicklablePacket中,然后__call__ 之后。我不知道没有以这种方式保留的数据。然而,这种方法只适用于 Ethernet 数据包。 (在常规 NIC(而非 WLAN)上嗅探的所有数据包都是以太网。)它也可能扩展到适用于其他类型。

关于python - 如何 pickle scapy 数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4156328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com