AndroidデバイスのIPアドレスを正しく取得
1747 ワード
インターネット上ではandroidデバイスのIPアドレスを取得する記事が少なくありません.一般的な記事がありますが、IPv 6のアドレスをデフォルトで取得しているデバイスもあります.そのコードはIPv 6のアドレスを取得しています.しかし、これは明らかに私たちが望んでいるものではありません.IPv 4のアドレスが必要です.コードはこのように修正する必要があります.
赤いコードに注意して、このように得たのはIPv 4のアドレスです!
try {
for (Enumeration en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { //IPv4
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.d("IP", ex.toString());
}
赤いコードに注意して、このように得たのはIPv 4のアドレスです!