tcpdumpで収集された大きなpcap(パケットキャプチャ)ファイルがあります。特定の文字列を含むパケットを除外したいと思います。私の出力はまだpcap形式にしたい。私は、pcapファイルから正規表現に一致するパケットだけを表示するいくつかの方法を見つけましたが、必要なのはパケットの表示(例えばstdout)をフィルタリングするのではなく、そのようなファイルをフィルタリングすることです。出力は、一致したパケットが削除されたpcapファイルである必要があります。コンテンツ正規表現でpcap(例:tcpdump)ファイルをフィルタリングするにはどうすればよいですか?
私はdpkt(pythonモジュール)が助けになると思われますが、可能であれば既存の(C/C++)ツールを使用してこれを行うことをお勧めします。私は答えとしてコードを受け入れます(多分ベンチマークの良いdpktの例は私にちょうどその方法にも納得するでしょう;-))。
ありがとうございます!
回答:
パーニムの答え、それはWiresharkの/ tsharkのを経由して、これを行うことが可能です。再び
tshark -r infile -R 'not udp matches "my_search_string"' -w outfile
ありがとう:他人の参考のために、ここで私はUDPパケット(この例では、検索tcpまたは特定のプロトコルフィールドを行うために構築することができます)内の文字列の一致を確認する例のコマンドラインは、です!
ディスプレイをフィルタリングすることができれば、stdoutをファイルにリダイレクトできますか? –
私の要件は、出力がpcapであり、stdoutに出力されるようにパケットの文字列表現ではないということです。 – JJC