Android API23でIPv4アドレスの判定
IPアドレスがIPv4かどうかの判定を行うために、
以下のように、 InetAddressUtils.isIPv4Address(ipAddress)で判定するようなコードを書いていた。
Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces(); for (e.hasMoreElements()) { NetworkInterface networkInterface = e.nextElement(); Enumeration<InetAddress> e2 = networkInterface.getInetAddresses(); for (e2.hasMoreElements();) { InetAddress inetAddress = e2.nextElement(); String ipAddress = inetAddress.getHostAddress(); if (InetAddressUtils.isIPv4Address(ipAddress)) { // 〜IPv4アドレスの場合の処理〜 } } }
ただし、これはAndroid API23(Android 6.0)以前の話。
Android API23はApacheのHttpClientがなくなっているため、
上記APIは利用できない。
API23以降はInetAddressクラスがInet4Addressクラスのインスタンスかどうか
で判定することにする。
inetAddress instanceof Inet4Address