Я использовал NSDServiceInfo.getHost(). Выход getHostAddress() - это устройство IPv4 и IPv6 и маршрутизатор. для устройства я уже могу IPV4, поэтому мне нужен IPv6. как и к маршрутизатору, я уже могу, поэтому мне нужен IPV4 IPV6.Получите адрес IPv4 и IPv6, используя NsdServiceInfo?
Решение, которое я пробовал. но когда его hostaddress выпустил IPV4, выйдите из ошибки «Не адрес IPv6: [xx, xx, xx, xx]
Между тем, когда он выдал hostaddress IPv6, тогда сообщение об ошибке« java.net.Inet6Address не может должен быть приведен к java.net.Inet4Address»
Мне нравится эта кодировка
List <NSDServiceInfo> Data = new ArrayList<>();
InetAddress hostInet =InetAddress.getByName(Data.get(position).getHost().GetHostAddress());
byte [] addressBytes = hostInet.getAddress();
Inet6Address dest6 = Inet6Address.getByAddress(Data.get(position).getHost().GetHostAddress(), addressBytes, NetworkInterface.getByInetAddress(hostInet));
Inet4Address dest4 = (Inet4Address) Inet4Address.getByAddress (Data.get(position).getHost().GetHostAddress(), addressBytes);
Log.d ("IP", "IPv4" + dest4.getHostAddress());
Log.d ("IP", "IPv6:" + dest6.getHostAddress());
спасибо за решение. Сожалеем может быть более конкретным, чтобы его новый метод? Спасибо –