在 Android 台设备上查找 IPv6 全局范围地址
Find IPv6 global scope address on Android device
我正在寻找一种方法来确定我的 android 设备上的全球 IPv6 地址以用于测试目的。现在,我从 Android API 获得了一个接口列表,代码如下:
NetworkInterface netInt: NetworkInterface.getNetworkInterfaces()
netInt
实际上包含设备上所有接口的列表。例如,您可以从以下列表中看到..(只是列表的一部分)
[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]
我使用了一些 public IPv6 站点并意识到我的 public IPv6 地址是 2607:fb90:543:e9dd:e03:fac6:8232:95d6
。我想看看是否有可靠的方法从数组中提取 2607:fb90:543:e9dd:e03:fac6:8232:95d6%7%7
,因为数组的索引一直在变化,并且在设备之间变化。
感谢您的帮助。
需要检查的是第一个地址字是4个字符,第一个字符是2或3。如果数组元素满足这两个条件,则它是一个全局地址。然后你可以清理周围的垃圾以获得有效地址。
注意:IPv6 允许将多个全局地址分配给一个接口。事实上,一些操作系统为了安全是故意这样做的。
编辑:
IPv6 全球单播地址的定义是 2000::/3
。这会产生 2000::
到 3ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
。参见:IPv6 Global Unicast Address Assignments
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 地址,您可以将它们用作传入或传出。
我正在寻找一种方法来确定我的 android 设备上的全球 IPv6 地址以用于测试目的。现在,我从 Android API 获得了一个接口列表,代码如下:
NetworkInterface netInt: NetworkInterface.getNetworkInterfaces()
netInt
实际上包含设备上所有接口的列表。例如,您可以从以下列表中看到..(只是列表的一部分)
[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]
我使用了一些 public IPv6 站点并意识到我的 public IPv6 地址是 2607:fb90:543:e9dd:e03:fac6:8232:95d6
。我想看看是否有可靠的方法从数组中提取 2607:fb90:543:e9dd:e03:fac6:8232:95d6%7%7
,因为数组的索引一直在变化,并且在设备之间变化。
感谢您的帮助。
需要检查的是第一个地址字是4个字符,第一个字符是2或3。如果数组元素满足这两个条件,则它是一个全局地址。然后你可以清理周围的垃圾以获得有效地址。
注意:IPv6 允许将多个全局地址分配给一个接口。事实上,一些操作系统为了安全是故意这样做的。
编辑:
IPv6 全球单播地址的定义是 2000::/3
。这会产生 2000::
到 3ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
。参见:IPv6 Global Unicast Address Assignments
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 地址,您可以将它们用作传入或传出。