我使用NetworkInterface类来确定ip地址,但是尽管设备仅启用了IPv4,但我从networkInterface检索IPv6地址和IPv4地址,因为路由器也分配了IPv6地址。是否有一种以编程方式确定安卓设备是否启用IPv6的方法?
发布于 2013-12-09 14:41:25
这取决于你所说的“启用”是什么意思。
检查当前网络是否支持:
如果接口有一个IPv6地址,而Inet6Address.isSiteLocal()、.isLinkLocal()和.isLoopback()返回false,那么设备认为它在该接口上有一个上游路由器,而该路由器认为存在到普通网络的连接。当然,两者都可能是错的,但他们的想法是他们所想的。
严格地说,这测试设备是否连接到声称连接到IPv6世界的路由器。那个路由器可能是错的。
检查设备是否支持:
如果您想知道Android设备是否有任何v6支持,不管它是否能够到达其他v6设备,那么您可以遍历网络接口并检查其中是否有任何Inet6Address-es。我希望环回接口会有一个v6地址,即使其他接口没有。
https://stackoverflow.com/questions/20429541
复制相似问题