我目前正在使用pcapy嗅探数据包
self.pcap=pcapy.open_live(dev, 65535, 1, 100)
对于每个数据包,pcapy会为每个数据包返回 Pkthdr (对象)和 buffer (str)。
我的主要目标是通过套接字发送该信息并在其他地方重建该对象,但是如果没有序列化/反序列化,就无法发送该对象。因此,我尝试用pickle和dill序列化PKTHDR对象,但不幸的是它无法正常工作。
pkthdr_serialized = pickle.dumps(pkthdr)
Can't pickle 'Pkthdr' object: <Pkthdr object at 0x7f6498676f30>
以下是有关Pkthdr对象的一些信息:
inspect.isclass(object)
True
inspect.getmembers(pkthdr)
[('getcaplen', <built-in method getcaplen of Pkthdr object at
0x7faa81714f80>), ('getlen', <built-in method getlen of Pkthdr object at
0x7faa81714f80>), ('getts', <built-in method getts of Pkthdr object at
0x7faa81714f80>)]
type(pkthdr)
<type 'Pkthdr'>
callable(pkthdr)
False
pkthdr.getts()
(1541105084, 174388)
pkthdr.getcaplen()
106
pkthdr.getlen()
106
Pcapy用C编码,可能解释了我序列化对象的困难,但这超出了我的了解。
我在这里想念什么?
谢谢