Я пытаюсь отобразить IP-адрес подключенных сетей в Android.Я использую следующий код.Но он возвращает 2 IPv6 IP-адреса.Как найти правильный IP-адрес из этого?
Я использую следующий код:
List<LinkAddress> linkAddresses = connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getLinkAddresses();
for (LinkAddress linkAddress : linkAddresses) {
Log.i("","LinkAddress getAddress "+linkAddress.getAddress() + "");
Log.i("","Is IPV6 " + (linkAddress.getAddress() instanceof Inet6Address) +"");
Log.i("","Is IPV4 " + (linkAddress.getAddress() instanceof Inet4Address) +"");
Log.i("","Is isLinkLocalAddress " + (linkAddress.getAddress().isLinkLocalAddress()) +"");
Log.i("","Is not isLoopbackAddress " + (!linkAddress.getAddress().isLoopbackAddress()) +"");
}
Теперь я получаю 4 IP-адреса.
LinkAddress getAddress /fe80::2d0:caff:fe00:5ad6
LinkAddress getAddress /2401:4900:2305:14e:2d0:caff:fe00:5ad6
LinkAddress getAddress /2401:4900:2305:14e:28e2:5192:e38f:3e9
LinkAddress getAddress /192.168.43.176
Я могу определить, что fe80 - это IP-адрес локальной ссылки и 192. является адресом IPv4.Но я смущен, чтобы определить адрес IPV6 из этого.Пожалуйста, помогите мне узнать IP-адрес IPv6.