Wiresharkには、Wiresharkと同等の機能を持つCLIコマンドとしてtsharkが付属している。
tsharkではオプションとして-T fields -e <field> [-e <field> ...]
を指定することで、指定したフィールドのデータをタブ区切りで出力することができる。
次の例では、dump.pcap
というファイルから対象をHTTPのみに絞り込んだ上で、エポック秒、送信元・送信先のIPアドレス・TCPポート番号および各種HTTP情報を書き出す。
$ tshark -r dump.pcap -T fields -e frame.time_epoch -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport -e http.request.method -e http.request.uri -e http.host -e http.user_agent -e http.response.code -e http.server -e http.content_type -e http.content_length "http" 1436986529.646386000 10.0.2.15 45616 183.79.235.148 80 GET / www.yahoo.co.jp Wget/1.15 (linux-gnu) 1436986529.700081000 183.79.235.148 80 10.0.2.15 45616 200 nginx text/html; charset=UTF-8 1436986529.759357000 10.0.2.15 53979 124.83.230.249 80 GET /robots.txt k.yimg.jp Wget/1.15 (linux-gnu) 1436986529.815389000 124.83.230.249 80 10.0.2.15 53979 404 YTS/1.20.10 text/html; charset=iso-8859-1 1436986529.854421000 10.0.2.15 36326 124.83.254.251 80 GET /robots.txt lpt.c.yimg.jp Wget/1.15 (linux-gnu) 1436986529.928312000 124.83.254.251 80 10.0.2.15 36326 404 ATS text/html; charset=utf-8 162 1436986529.964301000 10.0.2.15 53981 124.83.230.249 80 GET /robots.txt i.yimg.jp Wget/1.15 (linux-gnu) 1436986530.004200000 124.83.230.249 80 10.0.2.15 53981 404 YTS/1.20.10 text/html; charset=iso-8859-1 3231 1436986530.005313000 10.0.2.15 53981 124.83.230.249 80 GET /images/clear.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.022590000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 43 1436986530.025674000 10.0.2.15 53981 124.83.230.249 80 GET /images/top/sp/cgrade/logo-mh-150217.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.059537000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 6150 1436986530.061766000 10.0.2.15 53981 124.83.230.249 80 GET /images/top/searchbox/s_w-140325.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.078845000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 264 1436986530.080611000 10.0.2.15 53981 124.83.230.249 80 GET /images/top/searchbox/s_i-140325.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.101198000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 233 1436986530.102426000 10.0.2.15 53981 124.83.230.249 80 GET /images/top/searchbox/s_m-140325.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.126180000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 237 1436986530.127047000 10.0.2.15 53981 124.83.230.249 80 GET /images/top/searchbox/s_d-140325.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.143635000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 225 1436986530.150385000 10.0.2.15 53981 124.83.230.249 80 GET /images/top/searchbox/s_k-140325.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.177203000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 245 1436986530.180516000 10.0.2.15 53981 124.83.230.249 80 GET /images/top/searchbox/s_mp-140325.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.197362000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 237 1436986530.198396000 10.0.2.15 53981 124.83.230.249 80 GET /images/common/tv.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.218191000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 341 1436986530.219691000 10.0.2.15 53981 124.83.230.249 80 GET /images/icon/photo.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.238256000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 360 1436986530.240735000 10.0.2.15 53981 124.83.230.249 80 GET /images/new2.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.258350000 124.83.230.249 80 10.0.2.15 53981 200 YTS/1.20.10 image/gif 111 1436986530.274762000 10.0.2.15 36328 124.83.254.251 80 GET /im_siggfsXBwwG4fZVOAjOlg94Z.g---x120-y120/amd/20150715-00000060-asahi-000-view.jpg lpt.c.yimg.jp Wget/1.15 (linux-gnu) 1436986530.292408000 124.83.254.251 80 10.0.2.15 36328 200 ATS image/jpeg 8486 1436986530.310006000 10.0.2.15 53983 124.83.230.249 80 GET /images/top/sp/cgrade/pb_bg.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.329179000 124.83.230.249 80 10.0.2.15 53983 200 YTS/1.20.10 image/gif 94 1436986530.330416000 10.0.2.15 53983 124.83.230.249 80 GET /images/top/sp/cgrade/info_btn-140325.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.349955000 124.83.230.249 80 10.0.2.15 53983 200 YTS/1.20.10 image/gif 229 1436986530.351301000 10.0.2.15 53983 124.83.230.249 80 GET /images/top/sp/cgrade/iconMail.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.370669000 124.83.230.249 80 10.0.2.15 53983 200 YTS/1.20.10 image/gif 209 1436986530.371757000 10.0.2.15 53983 124.83.230.249 80 GET /images/sicons/ybm161.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.390212000 124.83.230.249 80 10.0.2.15 53983 200 YTS/1.20.10 image/gif 282 1436986530.391321000 10.0.2.15 53983 124.83.230.249 80 GET /images/sicons/box16.gif i.yimg.jp Wget/1.15 (linux-gnu) 1436986530.408870000 124.83.230.249 80 10.0.2.15 53983 200 YTS/1.20.10 image/gif 256 1436986530.410496000 10.0.2.15 53983 124.83.230.249 80 GET /images/top/sp/cgrade/icon_point.gif k.yimg.jp Wget/1.15 (linux-gnu) 1436986530.429079000 124.83.230.249 80 10.0.2.15 53983 200 YTS/1.20.10 image/gif 100
最後の"http"
は出力する対象をHTTPデータのみに絞り込むフィルタである。
また、対応するフィールドがないものは空文字列として扱われる。
フィールド名の一覧は下記のリファレンスにある。
HTTPに限らず、DNSなど他のプロトコルでも同様にして必要なフィールドのみを選択してタブ区切りで抽出することが可能である。 pcapのファイルサイズが非常に大きくWiresharkでの表示に時間がかかる場合や、他のスクリプトから解析結果を利用したい場合などに便利。