1

現在の Android フォンで IPv6 が利用可能かどうかを確認する最良の方法は何ですか?

私の現在のアイデアは、を使用NetworkInterfaceして列挙NetworkInterface.getNetworkInterfaces()することですが、これは複雑すぎるようです。

もっと簡単な方法はありますか?

4

2 に答える 2

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

チェックしたいアドレスがわかっている場合は、使用をスキップして、の静的メソッドの1 つを呼び出しNetworkInterfaceて特定のアドレスをチェックし、それが のインスタンスであるかどうかをチェックできます。InetAddressInetAddressgetBy...()Inet6Address

于 2012-04-13T14:53:30.960 に答える
0
boolean isIPV6 = false;
Enumeration<NetworkInterface> networkInterfaces =
    NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
    NetworkInterface ni = networkInterfaces.nextElement();
    for (InterfaceAddress addr : ni.getInterfaceAddresses()) {
        if (addr.getAddress() instanceof Inet6Address) {
            isIPV6 = true;
        }
    }
}
于 2018-04-18T17:23:49.287 に答える