Есть ли способ заставить tcpdump печатать только шестнадцатеричный формат при чтении CAN-пакетов?

Хотя пакет can-utils доступен в Linux для взаимодействия с сетевыми устройствами CAN, я пытаюсь подтвердить, может ли tcpdump печатать только шестнадцатеричный формат при чтении пакетов CAN без включения символов ASCII?

tcpdump версия 4.2.1 libpcap версия 1.1.1

Единственный обходной путь, который я нашел, заключался в том, чтобы направить вывод tcpdump в файл, а затем прочитать его, используя утилиту, такую ​​как hexdump, xxd или OD и т. Д.

Верхний левый экран основан на сценарии ниже:

# tcpdump -ivcan0 -s0 -x -w - -s0 -l > canpackets.hex & tail -f canpackets.hex | hexdump -vC

Верхний правый экран представляет вывод tcpdump с использованием (-x) без перенаправления на hexdump; который все еще печатает ASCII.

Нижний левый экран - Candump; который здесь только для иллюстрации шестнадцатеричных значений, сгенерированных утилитой cangen в правом нижнем углу экрана.

while :; do ./cansend vcan0 001#1122334455667788; sleep .25; done

1 ответ

Это не прямой ответ на мой оригинальный вопрос.

Решение заключается в следующем: "Просто используйте tshark; он лучше работает с пакетами банок, не печатая мусор". tshark

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