2016-09-19 18 views
0

儘管can-utils軟件包在Linux中可用於與CAN網絡設備進行交互,但我試圖確認tcpdump是否可以在不包含ASCII字符的情況下讀取CAN數據包時僅打印十六進制格式?有沒有辦法在閱讀CAN數據包時強制tcpdump只打印十六進制格式?

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),而不重定向到hexdump都表示tcpdump的輸出;它仍然打印ASCII。

左下方的屏幕是candump;這裏僅僅是爲了說明右下方屏幕中cangen util生成的十六進制值。

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

enter image description here

回答

0

這不是直接回答我原來的問題。

一個解決方案是,「只需使用tshark;它可以更好地處理can數據包,而不會打印出亂碼。」 tshark