WindowsでコマンドラインによるWiresharkの起動

開発のために通信するプログラムと共にWiresharkを起動したかったため、バッチファイルを作成しました。
Wiresharkには起動オプションがあるので、起動と同時にキャプチャを指定したフィルタで開始することができます。

起動バッチファイルをstart.bat、通信プログラムをfoo.exeとします。
2つは同じフォルダ内にあるとします。

start.bat

REM start.batが保存されているフォルダに移動
cd /d %~dp0

REM 現在時刻(キャプチャ結果ファイル名に使用する)
set time2=%time: =0%  

REM Wiresharkの実行ファイルがあるフォルダ(OSが64ビット版の場合は要変更)
set WIRESHARK_PATH=C:\"Program Files"\Wireshark\

REM Wiresharkのキャプチャ対象インタフェース番号(※1)
set CAP_INTERFACE=1

REM Wiresharkのディスプレイフィルタ(HTTPプロトコルで、送信元がAAA.BBB.CCC.DDDか送信先がAAA.BBB.CCC.DDDで送信元HTTPヘッダのホスト名がhoge.example.jpのもの)
set DISPLAY_FILTER="http && ((ip.src == AAA.BBB.CCC.DDD) || (ip.dst == AAA.BBB.CCC.DDD && http.host == \"hoge.example.jp\" ))"

REM キャプチャ結果をファイルに保存するファイル名(capture-YYYYMMDDHHIISS.txt)
set CAPTURE_FILE=capture-%date:~-10,4%%date:~-5,2%%date:~-2,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%.txt

REM Wireshark起動 (※2)
start %WIRESHARK_PATH%Wireshark.exe ^
-i %CAP_INTERFACE% ^
-Y %DISPLAY_FILTER% ^
-w %CAPTURE_FILE% ^
-k

REM プログラム起動
start foo.exe

※1 キャプチャ対象インタフェース番号について

コマンドライン上でWiresharkを-Dをつけて実行すると、番号とインタフェースのリストが出力されます。

>"C:\Program Files\Wireshark\Wireshark.exe" -D

1. \Device\NPF_{AAAAAAAA-BBBB-CCCC-DDDD-012345678901} (XXXXXXX)
2. \Device\NPF_{EEEEEEEE-FFFF-GGGG-HHHH-123456789012} (YYYYYYY)
3. \Device\NPF_{IIIIIIII-JJJJ-KKKK-LLLL-234567890123} (ZZZZZZZ)
4. \Device\NPF_{MMMMMMMM-NNNN-OOOO-PPPP-345678901234} (WWWWWWW)

※2 使用したWiresharkコマンドラインオプション

-i キャプチャ対象インタフェース番号
-Y ディスプレイフィルタ
-w キャプチャ結果保存先
-k 起動と同時にキャプチャを開始

参考

コメント1件

  1. ピンバック: WindowsでコマンドラインによるWiresharkの起動 | misty-magic.h | 今速☆ニュース!

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中