tech notes

センシング、画像処理、xR

Wiresharkを使って一定時間でパケットを自動保存するバッチファイル

1 はじめに

解析等でネットワークパケットを保存したい場合、Windows OSではWiresharkを使ってパケットキャプチャするのが一般的だと思います。また、毎日、長時間パケットキャプチャする場合は、PCが突然落ちてしまうことも考え、一定時間で自動保存してほしいです。
そのバッチファイルを作成したので共有します。
WiresharkGUIからでもできます

※こちらの記事はQiitaで投稿した記事を移行したものとなります

2 やりたいこと

  • Wiresharkを使いたい
  • 一定時間でパケットを保存したい
  • 日毎にパケットをフォルダに分けたい
     ※毎日バッチを実行、終了する前提
  • バッチファイルで実行したい

3 動作確認環境

Wiondows 10
Wireshark Version 2.0.5

4 バッチファイル

@echo off
@Rem 保存するフォルダを指定する
Set BASE_DIR=C:\packets\

@Rem BASE_DIRで指定したフォルダの下で日付のフォルダを作成する
Set TODAY=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
Set FILE_DIR=%BASE_DIR%%TODAY%
Mkdir %FILE_DIR%

@Rem ネットワークインターフェイスを表示する
@echo ネットワークインターフェイス一覧
"C:\Program Files\Wireshark\tshark.exe" -D

@Rem ネットワークインターフェイスを入力する
set /p interface_id="パケットをキャプチャしたいネットワークインターフェイスを入力してください:"

@Rem パケットの保存間隔を入力する
set /p time_duration="保存間隔(分):"
set /a "time_duration *= 60"

@echo Wiresharkでパケットを保存します。終了させたい場合はCtrl+Cを押してください。
"C:\Program Files\Wireshark\dumpcap.exe" -i %interface_id% -b duration:%time_duration% -w %FILE_DIR%\packet.pcapng

5 解説

保存フォルダを指定します。好きなフォルダを指定してください。

Set BASE_DIR=C:\packets\

指定した保存フォルダに日付名でフォルダを作成します。

Set TODAY=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
Set FILE_DIR=%BASE_DIR%%TODAY%
Mkdir %FILE_DIR%

ネットワークインターフェイス番号を表示します。Wireshrakのインストールされているフォルダにあるtshark.exeを指定します。-Dのオプションでインターフェイス番号を表示することができます。

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

パケットキャプチャしたいネットワークインターフェイスの番号、パケットの保存間隔(分)を入力してもらいます。後述しますが、dumpcap.exeは秒間隔での指定となるため、分から秒に換算しています。

@Rem ネットワークインターフェイスを入力する
set /p interface_id="パケットをキャプチャしたいネットワークインターフェイス番号を入力してください:"

@Rem パケットの保存間隔を入力する
set /p time_duration="保存間隔(分):"
set /a "time_duration *= 60"

Wireshrakのインストールされているフォルダにあるdumpcap.exeを指定します。

"C:\Program Files\Wireshark\dumpcap.exe" -i %interface_id% -b duration:%time_duration% -w %FILE_DIR%\packet.pcapng

各オプションの説明は以下のとおりです。

オプション 説明
-i ネットワークインターフェイス番号を指定する
-b duration 保存間隔(秒)
-w キャプチャ結果をファイルに保存する

6 実行結果

コマンドプロンプトの出力は以下の通りになります。

f:id:tes2840:20200508115659p:plain
6_実行結果__コマンドプロンプト

パケットは指定したフォルダ以下に自動で保存されます。パケットのファイル名には自動で連番が振られます。

f:id:tes2840:20200508115734p:plain
6_実行結果__フォルダ

7 参考サイト

https://knowledge.sakura.ad.jp/6311/