
-n
のオプションがtcpdump
便利です。時にはIPアドレスを解決することを好み、時にはIPアドレスをホスト名で解決することを好む。
しかし、私はポート番号を「名前」に翻訳したくありません。
ポート番号を常に数値で表示するにはどうすればよいですか53
?domain
tcpdump
これが不可能な場合は、ポート番号が常に数字で表示されるようにパッチを適用するにはどうすればよいですか?
tcpdump 4.9.3-1~deb10u2
私はDebian 10を使用しています。
答え1
-nn
Linuxに付属のフラグには、このフラグが表示されないようにするフラグがありますtcpdump
(このフラグは移植可能ではありません†; Centos Linux Streamには4.9.3があり、Debianと同じであることを願っています)。.22
ただし、.ssh
これによりホスト名の検索も無効になります。したがって、おそらくソースコードのパッチを見ているでしょう。
ソースコード()を見ると-n
フラグがさまざまな目的で使用されるため、addrtoname.c
最も簡単な方法はおそらく新しいフラグを作成して処理が行われるtcpdump.c
場所getopt
とは異なる場所(構造体がありますが、おそらく必要ならグローバルにクルーガーを実行し、カスタムint Flag_Myflag;
フラグが存在するときに発生しません)ポート変換を変更します(必要に応じて、または何かをaddrtoname.c
組み合わせる方法がたくさんあります)。-n
-nn
if (Flag_Myflag) {
(void)snprintf(buf, sizeof(buf), "%d", port);
table->name = strdup(buf);
} else
table->name = strdup(sv->s_name);
欠点:これで、カスタムセキュリティの脆弱性などを手動で更新してパッチを適用できる可能性があり、tcpdump
これは危険です。
†私の同僚が私にLinuxのロゴを入力しようとしましたtcpdump
。彼らは私のデスクトップがOpenBSDかどうか知りませんでした。うまくいかなかった。