2014-11-11 2 views
2

Я хочу отправить определенные гексагональные последовательности, например FF FF FF FF FF FF, на провод, используя scapy без использования опции Raw. Будет ли поиск строкового эквивалента этих шестнадцатеричных последовательностей и использования их в качестве полезной нагрузки пакета, будет иметь тот же эффект, поскольку scapy преобразует их в hex и отправляет?Отправка определенных шестнадцатеричных данных с использованием scapy

+0

Scapy не отправляет hex. Scapy отобразит ваши данные как текст, но он отправит их в виде необработанных байтов по проводу. Шестнадцатеричное представление - это просто представление данных. – msvalkon

+0

Ну, если я даю «ffffffffffff» в качестве ввода текста, то scapy отправляет 66: 66: 66: 66: 66: 66: 66: 66: 66: 66: 66: 66 на проводе. Это не шестнадцатеричный текст ввода? Спасибо – user2061944

+0

'0xFF'' '' '' 255 ', представленный как целое число. Итак, у вас есть какой-то код, внесите в свой вопрос свой ввод и ожидаемый результат. Некоторый контекст вокруг вопроса также поможет. – msvalkon

ответ

1

В python 2.x вы можете создать двоичные данные из шестнадцатеричной строки с помощью модуля binascii. Я использовал это, чтобы правильно установить duid в запросе DHCPv6, просто передав его опции типа пакета.

Например

>>> import binascii 
>>> binascii.unhexlify('FFFFFFFFFFFF') 
'\xff\xff\xff\xff\xff\xff' 

Проходя эту строку к полезной нагрузке должно быть все, что вам нужно. Конечно, вы можете просто набрать строку с помощью \x escapes, как указано выше, но проще представить ее как хорошую шестую строку и вызвать unhexlify, когда вам нужны правильные двоичные данные.

+0

Я просто посмотрел на ваш ответ. Я пробовал то же самое на прошлой неделе, и это работает – user2061944

Смежные вопросы