1

检查当前安卓手机上是否有 IPv6 的最佳方法是什么?

我目前的想法是使用NetworkInterface和枚举 via 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
        }
    }
}

如果您知道要检查的地址,则可以跳过使用NetworkInterfaceInetAddress通过调用其中一个InetAddress静态getBy...()方法来检查具体地址,并检查它是否是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 回答