检查当前安卓手机上是否有 IPv6 的最佳方法是什么?
我目前的想法是使用NetworkInterface
和枚举 via NetworkInterface.getNetworkInterfaces()
,但这似乎太复杂了。
有没有更简单的方法?
检查当前安卓手机上是否有 IPv6 的最佳方法是什么?
我目前的想法是使用NetworkInterface
和枚举 via NetworkInterface.getNetworkInterfaces()
,但这似乎太复杂了。
有没有更简单的方法?
如果您需要检查所有接口,我不知道比使用更简单的方法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
通过调用其中一个InetAddress
静态getBy...()
方法来检查具体地址,并检查它是否是Inet6Address
.
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;
}
}
}