В настоящее время я слежу за пакетами, используя pcapy
self.pcap=pcapy.open_live(dev, 65535, 1, 100)
и для каждого пакета pcapy возвращает Pkthdr (объект) и буфер (str) для каждого пакета.
Моя главная цель - отправить эту информацию через сокет и реконструировать объект в другом месте, но я не могу отправить объект без сериализации / десериализации. Поэтому я попытался сериализовать объект 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, это может объяснить мою трудность сериализации объекта, но это по моим сведениям.
Что мне здесь не хватает?
Спасибо