Find IPv6 global scope address on Android device
我正在寻找一种方法来确定我的 android 设备上的全局 IPv6 地址以进行测试。现在,我从 Android API 获得了一个接口列表,代码如下:
1 | NetworkInterface netInt: NetworkInterface.getNetworkInterfaces() |
1 2 3 | [dummy0][2][/fe80::d878:d9ff:fe94:eeae%dummy0%2] [rmnet_data0][7][/fe80::e03:fac6:8232:95d6%rmnet_data0%7] [/2607:fb90:543:e9dd:e03:fac6:8232:95d6%7%7] |
我使用了一些公共 IPv6 站点并意识到我的公共 IPv6 地址是
感谢您的帮助。
你需要检查的是第一个地址字是4个字符,第一个字符是2还是3。如果数组元素满足这两个条件,它就是一个全局地址。然后你可以清理周围的垃圾以获得一个有效的地址。
注意:IPv6 允许将多个全局地址分配给一个接口。事实上,一些操作系统是为了安全而故意这样做的。
编辑:
IPv6 全球单播地址的定义是
1 2 3 4 5 | Note The assignable Global Unicast Address space is defined in [RFC4291] as being the address block defined by the prefix 2000::/3. All address space in this block not listed in the table below is reserved by IANA for future allocation. |
IPv6 允许在一个接口上使用任意数量的 IPv6 地址,您可以将它们用作传入或传出地址。