Я не знаю более простым способом, чем при использовании NetworkInterface
, если вам нужно проверить все интерфейсы, но это не должно быть так плохо:
for(NetworkInterface netInt: NetworkInterface.getNetworkInterfaces()){
for(InterfaceAddress address: netInt.getInterfaceAddresses()){
if(address.getAddress() instanceof Inet6Address){
// found IPv6 address
// do any other validation of address you may need here
}
}
}
, если вы знаете адрес, который вы хотите проверьте, что вы можете пропустить с помощью NetworkInterface
и проверить конкретный InetAddress
, вызвав один из статических методов InetAddress
getBy...()
и проверьте, является ли это экземпляр Inet6Address
.
Это будет работать, только если устройство * подключено к сети ipv6 в данный момент *? – joaonlima
Это только скажет вам, что у вас есть адаптер IPv6. Если вы находитесь в сети NAT64, расположенной ниже по потоку от сети только с IPv4, это предполагает, что у вас есть подключение по протоколу IPv6, но при попытке подключиться к IPv6 она не удастся. –