rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

wiresharkのcaptureデータをxmlで処理してみた

2012-10-09 00:01:47 | ネットワーク
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]$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個の通信データだけのファイルとなる。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする