2012-04-13 6 views

Antwort

2

ich eine einfachere Art und Weise nicht wissen, als NetworkInterface verwenden, wenn Sie alle Schnittstellen müssen überprüfen, aber es sollte nicht so schlimm sein:

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 
     } 
    } 
} 

wenn Sie die Adresse wissen möchten Sie Überprüfen Sie, dass Sie NetworkInterface überspringen können und überprüfen Sie die spezifischen InetAddress, indem Sie eine der InetAddress statischen Methoden getBy...() aufrufen und überprüfen, ob das eine Instanz von Inet6Address ist.

+0

Das funktioniert nur, wenn das Gerät * gerade * mit dem ipv6-Netzwerk verbunden ist, richtig? – joaonlima

+0

Dies wird Ihnen nur sagen, dass Sie einen IPv6-Adapter haben. Wenn Sie sich in einem NAT64-Netzwerk befinden, das einem Nur-IPv4-Netzwerk nachgeschaltet ist, wird davon ausgegangen, dass Sie IPv6-Konnektivität haben, aber wenn Sie versuchen, eine IPv6-Verbindung herzustellen, wird es fehlschlagen. –