開発中など,iOSの通信をWireSharkでみたいという場面がしばしばある.rvictlコマンドを利用することで,iOSの通信をキャプチャできる用になるのだけれど,キャプチャしたデータの扱いが上手くできなかったので書く.rvictlを使う方法は以下の記事に大まかなやり方が書かれてる.
実は最初,rvictlで渡すUUIDの取得にとまどった.世の中のiOSデベロッパ各位であれば躓かないのだろうけれど,iOSデベロッパではないウェブやさんとか普通困るから,どう調べるのか書いてあげるのが丁寧だと思った.*1
実際にキャプチャしてみるとこういう画面になる.
確かにキャプチャできていることはわかるが,僕は人間なのでこれでは困る.
http://qiita.com/ykst/items/61ad7e5167a814126d99
Wireshark Q&A
このあたりの記事をみれば解決できるのだけれど,2014年6月7日現在,細かいパラメータが変わっているので注意が必要.
WireSharkの画面見るとわかるんだけれど,User encapsulation not handled: DLT=149, check your Preferences->Protocols->DLT_USERということだから,メッセージ通りDLTs Tableにルールを追加してあげればよい.
DLT_USERのUser2 (DLT=149) を値を書き換えるのだけれど,
- 3G/4Gの場合はPayload protocolをip,HeaderSizeを160
- WiFiの場合はPayload protocolをeth,HeaderSizeを156
にしてあげると良い.
画面もカラフルになってめでたさがでていると思う.
探してたときの話は普段の日記の方に書いた.