有没有办法强制tcpdump在读取CAN数据包时只打印十六进制格式?

时间:2016-09-19 23:22:01

标签: tcpdump packets can-bus

尽管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

右上方的屏幕表示使用(-x)的tcpdump输出,不重定向到hexdump;仍然打印ASCII。

左下方的屏幕是candump;这里只是为了说明右下方屏幕中cangen util生成的十六进制值。

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

enter image description here

1 个答案:

答案 0 :(得分:0)

这不是我原来问题的直接答案。

解决方案是,"只需使用tshark;通过不打印乱码可以更好地处理数据包。" tshark