AndroidでIPv4の値を取得する。
Android端末のIPを取得しようとしていたところ、IPv6の値を取得してしまったりしたので個人的なメモ。
とりあえず、ぐぐって取得した手順は以下の通り。
これだと、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