Android从主机名

时间:2017-01-10 02:49:34

标签: android dns ipv6

我试图从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)

我在Android终端中也尝试了nslookup,它适用于IPv6:

image

有什么办法可以使用Android API从主机名中获取IPv6地址?

更新:我使用了dnsjava库来解决我的问题。

请参阅此相关讨论:

Return IPv6 in Java

0 个答案:

没有答案
相关问题