\ x - это шестнадцатеричное обозначение.В этом случае, когда вы используете str (IP ()), вы пытаетесь преобразовать пакетные данные в строку, которая не является полностью допустимой, поскольку не все необработанные шестнадцатеричные данные могут быть найдены в таблице ASCII, чтобы заменить их буквой, чтобы любой шестнадцатеричный код, который могПреобразование будет видно в этом формате \ x14.
Я думаю, что поможет следующий пример:
- просмотр сводки пакета с использованием метода scapy
кодирование данных пакета в шестнадцатеричный формат для просмотра с использованием методов python
Welcome to Scapy (2.1.1-dev)
>>> pkt=IP()
>>> pkt.summary()
'127.0.0.1 > 127.0.0.1 ip'
>>> data=str(pkt)
>>> data.encode('hex')
'450000140001000040007ce77f0000017f000001'
>>>
учитывайте следующие моменты:
- в SCAPY, если вы создаете IP-уровень без определения источника и назначения, адрес обратной связи будет установлен по умолчаниюдля обоих, как показано в примере '127.0.0.1> 127.0.0.1 ip'
- .summary () - метод Scapy
- str (), .encode - методы python