tcpdump: 常に数値ポート番号を表示

tcpdump: 常に数値ポート番号を表示

-nのオプションがtcpdump便利です。時にはIPアドレスを解決することを好み、時にはIPアドレスをホスト名で解決することを好む。

しかし、私はポート番号を「名前」に翻訳したくありません。

ポート番号を常に数値で表示するにはどうすればよいですか53domain

tcpdumpこれが不可能な場合は、ポート番号が常に数字で表示されるようにパッチを適用するにはどうすればよいですか?

tcpdump 4.9.3-1~deb10u2私はDebian 10を使用しています。

ベストアンサー1

-nnLinuxに付属のフラグには、このフラグが表示されないようにするフラグがあります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かどうか知りませんでした。うまくいかなかった。

おすすめ記事