我需要列出任何特定 Android 设备的所有可用 IP 地址。
我找到了一些示例代码,但这只会返回一个 IP 地址,它恰好是一个 IPv6 地址。我需要获取任何特定设备的所有可用 IP。我在这个应用程序的 iOS 版本上做同样的事情,它返回 3 个 IPv6 地址,一个192.
地址和一个10.
地址。我正在尝试在 Android 上复制相同的内容。我将所有值传递给一个数组并将它们显示在一个列表中。
我的代码是:
public String getLocalIpAddress()
{
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
IPAddresses.setText(inetAddress.getHostAddress().toString());
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
String LOG_TAG = null;
Log.e(LOG_TAG, ex.toString());
}
return null;
}