2017-03-07 3 views
1

私は何百ものキャプチャファイルを持っており、多数のクライアントにサーバーが発行する特定の要求に対する応答を要約する必要があります。私はtsharkを使ってキャプチャファイルを処理するスクリプトを使用しています。wiresharkキャプチャでframe.ref_timeというラベルをプログラムで設定する方法

私はプログラム的に(私はすでにフィルタとしてtcp.streamを使用しますが、さらに制限する必要があるのです)、特定のディスプレイフィルタに一致するパケットのためのframe.ref_timeを設定して、私の目的に合わせてframe.time_relative < x secondsを使用して再スキャンします。

tsharkもeditcapもこれをしていないようですが、わかりません。確かにこの能力はGUIに限られていませんか?

frame.ref_timeをスクリプトからプログラムで設定するにはどうすればよいですか? ラベルを設定すると、すべてのラベルをクリアするための鈍い方法がありますか、エレガントで逆の操作を行う必要がありますか?

答えて

1

私の知る限り、frame.ref_timeはGUIを使用してのみ設定できます。しかし、この制限は必ずしもあなたにとって問題ではないかもしれません。フィルタを適用すると、そのパケットが新しいファイルまたはに別のtsharkインスタンスをパイプして書き込まれたときに、フィルタに一致する最初のパケットに対してすべてのフレームが相対的になります。したがって、最初に興味のあるストリームを分離する2つのインスタンスの2つのインスタンスを使用して、時間関連基準に一致するフレームを分離する2つ目のインスタンスを使用して、必要なものを達成する必要があります。

例えば、TCPストリームに関連するパケットに興味があるとしますが、ストリームの開始から0.1秒以内に受信されたそのストリームの一部であるパケットのみが対象とします。その場合は次のようなコマンドを使用できます。

tshark -r capturefile.pcap -Y "tcp stream eq 0" -w - | tshark -r - -Y "frame.time_relative < 0.1" 

tsharkオプションの詳細についてはtshark man pageを参照してください。

+0

ありがとうございます。これは完全に機能します。私は余分な乱雑さなしで必要なストリームごとに2つの関連するフレームで終わる。それは余分な時間をtsharkと呼んでいたにもかかわらず、私の以前のソリューション(走っていなかった)よりはるかに高速です。 – gloopy

関連する問題