有没有办法以编程方式确定Android设备是否启用了IPv6?

时间:2013-12-06 17:03:29

标签: android ipv6

我使用NetworkInterface类来确定IP地址但是虽然设备仅支持IPv4,但我从networkInterface检索IPv6地址和IPv4地址,因为路由器也分配了IPv6地址。 有没有办法以编程方式确定Android设备是否启用了IPv6?

1 个答案:

答案 0 :(得分:1)

这取决于“启用”的含义。

检查当前网络是否支持:

如果接口具有Inet6Address.isSiteLocal().isLinkLocal().isLoopback()返回false的IPv6地址,则设备认为该接口上有上游路由器,并且该路由器认为存在与一般网络的连接。当然两者都可能是错的,但他们认为他们的想法。

严格来说,这会测试设备是否连接到声称连接到IPv6世界的路由器。该路由器可能是错误的。

检查设备是否支持:

如果你想知道Android设备是否有任何v6支持,无论它是否能够访问其他v6设备,那么你可以迭代网络接口并检查它们是否有任何Inet6Address- ES。我希望loopback接口有一个v6地址,即使其他接口没有。