我正在尝试从 Android 设备上的主机名获取 IPv6 地址。
我的设备是 Nexus 7 和 6.0.1 版本。
下面是我使用的API:
InetAddress[] inets = InetAddress.getAllByName("hostname.com");
InetAddress address = InetAddress.getByName("hostname.com");
这两个 API 调用适用于 IPv4,但不适用于 IPv6。
它显示以下错误:
01-10 10:04:18.945: W/System.err(474): java.net.UnknownHostException: Unable to resolve host "106.bmc.com: No address associated with hostname
01-10 10:04:18.945: W/System.err(474): at java.net.InetAddress.lookupHostByName(InetAddress.java:470)
01-10 10:04:18.945: W/System.err(474): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
01-10 10:04:18.945: W/System.err(474): at java.net.InetAddress.getByName(InetAddress.java:305)
01-10 10:04:18.946: W/System.err(474): Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
01-10 10:04:18.946: W/System.err(474): at libcore.io.Posix.android_getaddrinfo(Native Method)
01-10 10:04:18.946: W/System.err(474): at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
01-10 10:04:18.946: W/System.err(474): at java.net.InetAddress.lookupHostByName(InetAddress.java:451)
我也尝试过nslookup
在 Android 终端中,它在 IPv6 上运行良好:
有什么方法可以使用 Android API 从主机名获取 IPv6 地址吗?
UPDATE:我已经用过dnsjava http://www.dnsjava.org图书馆来解决我的问题。
相关讨论请参考:
在 Java 中返回 IPv6 https://stackoverflow.com/questions/11974232/
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)