tcpdumpの結果をterminalから取得する

ヘッダの解析をしたいとのことで、環境に手を加えずにパケットダンプを取得する方法を考えています。本職のネットワーク機器での対応(L2SWでmonitor)は設定変更とセンターへの入館を伴うので避ける。
とりあえず思いついたのがtcpdumpの結果を標準出力に出してログとして取得する方法。できればpcap形式で取得してあとからWiresharkで解析したいので、バイナリで取得したい。。。

とりあえず下記方法で可能らしい。

bounoki@phorni:~> sudo tcpdump -n tcp port 80 -s 1518 -w - | base64

こいつで、base64で結果が出力される。tcpdumpの結果がフラッシュされるタイミングに間隔があるので、取得が終わったら別コンソールからkillコマンドで頃す。

bounoki@phorni:~> sudo killall tcpdump

そしたら、

31 packets captured
31 packets received by filter
0 packets dropped by kernel

のようなゴミデータが残ってると思うのでこれらを取り除く。ログを取得する際にうまく改行されるように(改行などの制御コードも正しく出すように)してやると取り除きやすいと思います。
取り除いたら、改行コードをLFにしてテスト用Linuxサーバ等に移し、以下のコマンドでpcapにデコード。

bounoki@phorni:~> base64 -d > .pcap

あとはwindowsやれ何やれのWiresharkで通常のpcapファイルとして開く。