H2VControllerからH2VGatewayへの通信データをwiresharkでパケットキャプチャしている
キャプチャフィルタは、「ether src 34:c7:31:xx:yy:zz and vlan 1 and ip」としている
1分毎のキャプチャデータから通信データ部だけを抽出して1分毎のデータを比較して評価することを模索した結果、wiresharkからキャプチャデータをxmlで書き出し、powershellを使って通信データ部だけを取り出すこととした。
書き出したxmlデータをxml notepad(マイクロソフト社から提供されている)で表示してみると
「pdml」ルート以下に「packet」(各パケットデータ)があり、「proto」にframe、ethernet、ip、tcpなどのデータが格納されているのが判る。
構造が判ったので、powershellでxmlデータを処理するため、powershell-iseを起動する
xmlデータを変数に読み込む
xml notepadでpdmlルート以下にデータがあるので幾つのパケットが記録されているか確認してみる
524パケット記録されているのが判る
抽出したい通信データは、「fake-field-wrapper」部の「value」である。fake-field-wrapperは、各packet内の7番目のprotoの最初のfield内のvalueを取り出してみる
うまく取り出せているので、スクリプト「test2.ps1」として524個のパケット全てから取り出す
この結果をファイルにredirectすれば、524個の通信データだけのファイルとなる。
キャプチャフィルタは、「ether src 34:c7:31:xx:yy:zz and vlan 1 and ip」としている
1分毎のキャプチャデータから通信データ部だけを抽出して1分毎のデータを比較して評価することを模索した結果、wiresharkからキャプチャデータをxmlで書き出し、powershellを使って通信データ部だけを取り出すこととした。
書き出したxmlデータをxml notepad(マイクロソフト社から提供されている)で表示してみると
「pdml」ルート以下に「packet」(各パケットデータ)があり、「proto」にframe、ethernet、ip、tcpなどのデータが格納されているのが判る。
構造が判ったので、powershellでxmlデータを処理するため、powershell-iseを起動する
xmlデータを変数に読み込む
[xml]$xml=(get-content .\test.xml)
xml notepadでpdmlルート以下にデータがあるので幾つのパケットが記録されているか確認してみる
$xml.pdml.get-childnodes().count
524パケット記録されているのが判る
抽出したい通信データは、「fake-field-wrapper」部の「value」である。fake-field-wrapperは、各packet内の7番目のprotoの最初のfield内のvalueを取り出してみる
$xml.pdml.packet[0].proto[6].field.value
うまく取り出せているので、スクリプト「test2.ps1」として524個のパケット全てから取り出す
この結果をファイルにredirectすれば、524個の通信データだけのファイルとなる。