カテゴリー
Linux

tcpdumpでフレーム全体を16進ダンプする

tcpdumpによる16進ダンプでパケット解析をしているのですが、
イーサネットヘッダまで含めた出力がうまく出来ず困っていました。
(-e オプションを使えば一応内容は出力できますけど)
改造して出力出来るようにしようとソースを見ると
(tcpdump-3.9.4 から引用)
tcpdump.c L747


case 'x':
++xflag;
++suppress_default_print;
break;

xflag を参照しているのは?
tcpdump.c L1259


} else if (xflag) {
/*
* Print the raw packet data in hex.
*/
if (xflag > 1) {
/*
* Include the link-layer header.
*/
hex_print("\n\t", sp, h->caplen);
} else {

なんと、イーサネットヘッダも含めて出力するコードが存在している。
試しに -xx としてみると出力されました。
MANPAGEには載ってない・・・よね

「tcpdumpでフレーム全体を16進ダンプする」への1件の返信

3.8.3 でちゃんと man tcpdump したら載ってました。
3.8 系からは -xx が使えるみたいです。
(man をウェブで読んで済ませる癖があるもので)
ただ、manの英語版にしか載っていなくて日本語版マニュアルには書いてません。