tcpdump をコマンド ラインで実行すると、パケットは受信時にリアルタイムで表示されます。ただし、tcpdump がパイプで何かに渡されると、バッファ出力に頼ります。これを構成できるように、-l
および-U
オプションが用意されています。ただし、どのオプションを設定しても、生の CLI から実行するほど高速な結果にはならないことがわかりました。Python で subprocess、tee、さらには Rust ラッパーを試してみました。パケットは常にバッチで出力されるようです。
何か案は?
答え1
tcpdump には現在 があり--immediate-mode
、この問題は解決しました。これを動作させるために、 と組み合わせて使用しました-l
。
見るこの答え。