0

私は bash/awk プログラミングが初めてで、すぐにあなたの助けが必要です

これは、tcpdump によってキャプチャされた ipv6 tcp パケットの 16 進数の出力です -

 6000 0000 0018 0620 0000 0000
 0000 0000 0000 0000 0000 0001 0000 0000
 0000 0000 0000 0000 0000 0002 *0026 0026
 0000 0001 0000 0002 {5}412 0065 0034 0000*
 6162 6364    

{5} は 32 ビット ワードで tcp パケットの長さを指定し、tcp パケットは b/w *s です。

 (* and {} are used to clear the question ,they are not 
  present actually in output)

ここで、bash/awk スクリプトを使用して、この情報から tcp ヘッダーを抽出する必要があります。

tcpで指定された長さまでファイルをバイトごとに読み取る必要があると思いますが、これを行う方法がわかりません。

したがって、上記の出力からtcp情報を抽出する方法は、ファイルに書き込まれていると仮定します。

事前にサンクス..

4

1 に答える 1

1

RecordSeparator (RS) および OutputRecordSeperator (ORS) に使用する文字を設定できる awk 機能を使用し、NumberRecord (NR) var を使用して印刷する rec の部分を監視します。

awk '{BEGIN RS=" ";ORS="\n";} { if (NR >20 && NR < 31) print $0}' hexFile

ファイルの詳細 (このデータの繰り返しセットはどのように見えるか) と予想される出力を教えていただければ、おそらくこれをさらに効率的にすることができます。

これが役立つことを願っています。

于 2011-10-25T02:51:05.700 に答える