检查好的Android手机上是否有IPv6可用的最佳方法是什么?
我的想法是使用NetworkInterface
并通过NetworkInterface.getNetworkInterfaces()
进行枚举,但这似乎太复杂了。
有更简单的方法吗?
答案 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;
}
}
}