检查IPv6是否可用的最佳方法

时间:2012-04-13 13:22:25

标签: android ipv6

检查好的Android手机上是否有IPv6可用的最佳方法是什么?

我的想法是使用NetworkInterface并通过NetworkInterface.getNetworkInterfaces()进行枚举,但这似乎太复杂了。

有更简单的方法吗?

2 个答案:

答案 0 :(得分: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的静态getBy...()方法之一检查具体InetAddress并检查是否是Inet6Address

的实例

答案 1 :(得分: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;
        }
    }
}