AndroidでIPv4の値を取得する。

Android端末のIPを取得しようとしていたところ、IPv6の値を取得してしまったりしたので個人的なメモ。

とりあえず、ぐぐって取得した手順は以下の通り。

参考:androidIPアドレスを取得する

http://kamosan-android.blog.so-net.ne.jp/2011-05-03-1

これだと、IPv6の値を取得してしまう可能性があるので
14行目のループバックアドレス判定

if( ! ip.isLoopbackAddress() ) {

に取得したIPがIPv4フォーマットかどうかの判定を加える。
IPv4かどうかはInetAddressUtils内のisIPv4Addressで判定できる。
追加した条件は以下の通り

if (!ip.isLoopbackAddress() && InetAddressUtils.isIPv4Address(ip.getHostAddress())) {

参考: How do I get IP_ADDRESS in IPV4 format
http://stackoverflow.com/questions/11015912/how-do-i-get-ip-address-in-ipv4-format