kazuakix の日記

Windows Phone とか好きです

Windows Phone 8.1 で IP アドレスを確認する

国内での発売も秒読み段階 *1 と思われる Windows Phone 8.1 ですが、正直 キャリアから発売される気がしません (もちろん大逆転劇には期待しています) 。 Surface のように日本マイクロソフトが発売して MVNO による格安 SIM の受け皿として広まっていってくれるような未来に僕たちは期待しています。
 
そんな Windows Phone ですが、8 からは IPv6 にも対応しています。そして MVNO も例えば IIJmio だと標準で IPv6 に対応しています。*2

f:id:kazuakix:20140719221834j:plain,w360

アドレスが枯渇して端末には IPv4 プライベートアドレスが割り当てられる事が多い中、IPv6 には期待が高まりますね。
 
ただ、Windows Phone には自分の IP アドレスを確認する画面が見当たりません。IPv6 アドレスを確認するだけなら test-ipv6.com のようなサイトを確認するという手もあるのですが、例えば上記設定で「IPv4v6」を選んで更に無線 LAN にも繋がっているような状況ではすべてのアドレスを確認できるわけではありません。

f:id:kazuakix:20140719233808j:plain,w360
 

なので たまにはコードを書いて IP を調べてみたいと思います。サンプルによるとネットワークの情報は NetworkInformation.GetHostNames() で取得するようですね。

複数HostName クラスが返ってきますが、単なるドメイン名のように IP アドレスを持たないものもあるので IPInformation メンバでチェックをしています。後は Type メンバを見れば IPv4IPv6 かを判断でき、DisplayName メンバで IP アドレスがわかります。
 
余談ですが、IPInformation メンバの NetworkAdapter.IanaInterfaceType でインタフェースの種類がわかります。ただ、ドキュメントに書いてある値はごく一部なので実際に Phone で動かすと 3G接続 (243 または 244) あたりが返ってくることになると思います。*3
 
今回久しぶりに Visual Studio を起動したのですが、あまりにも久しぶりすぎて 画面の作り方とか忘れかけていました。このくらい単純なツールからでもアプリ作っていかないと完全に忘れてしまいそうで怖いですね。

*1:何秒読むとは言っていない

*2:ドコモや au もオプションで対応できますが

*3:このあたりの値は IANAifType-MIB に書いてあります