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.
Das funktioniert nur, wenn das Gerät * gerade * mit dem ipv6-Netzwerk verbunden ist, richtig? – joaonlima
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. –