Scapy - Как прослушать пакет и отправить его в виде инкапсулированных данных

Мне нужно сделать следующее:

  • а) Используйте Scapy, чтобы понюхать () на eth0. Это принесет мне отвратительный пакет.. скажем, Х.
  • б) Хранить X как двоичные данные в некоторой переменной... Y.
  • c) Используйте zeromq IPC-сокеты для отправки Y другому процессу. Я должен использовать IPC, а не tcp/udp.

Код:

def handler(x):
  x.show() #or do something .. 
  s = .. a zmq socket = ipc://myipcendpoint

  y = convert x to binary <== how to do this? 
  s.send(y) 


sniff(prn=handler, iface='eth0')

На другой процесс:

while 1: 
  y = s.recv()
  x = recover scapy packet from y
  ... do something with x ... 

1 ответ

Решение

str() Представление, которое реализует Scapy, должно быть достаточно для вас.

y = str(x)

Вы можете сделать так, чтобы Scapy проанализировал его обратно в соответствующий пакет на принимающей стороне следующим образом:

x = Ether(y)

Из второго примера кода в разделе Stacking-Layers документа Scapy.

Другие вопросы по тегам