当前位置:  开发笔记 > 编程语言 > 正文

如何腌制一个scapy包?

如何解决《如何腌制一个scapy包?》经验,为你挑选了1个好方法。

我需要腌制一个scapy包.大部分时间都可以使用,但有时候pickler会抱怨一个函数对象.根据经验:ARP数据包泡菜很好.一些UDP数据包存在问题.



1> Helmut Grohn..:

我的解决方案(受到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

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

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有