2012-04-13 2 views
1

Каков наилучший способ проверить, доступен ли IPv6 на каррионном телефоне Android?Лучший способ проверить, доступен ли IPv6

Моя заманчивая идея - использовать NetworkInterface и перечислить через NetworkInterface.getNetworkInterfaces(), но это кажется слишком сложным.

Есть ли более простой способ?

ответ

2

Я не знаю более простым способом, чем при использовании 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, вызвав один из статических методов InetAddressgetBy...() и проверьте, является ли это экземпляр Inet6Address.

+0

Это будет работать, только если устройство * подключено к сети ipv6 в данный момент *? – joaonlima

+0

Это только скажет вам, что у вас есть адаптер IPv6. Если вы находитесь в сети NAT64, расположенной ниже по потоку от сети только с IPv4, это предполагает, что у вас есть подключение по протоколу IPv6, но при попытке подключиться к IPv6 она не удастся. –

Смежные вопросы