2

I'm trying to to get IPv6 addresses from a hostname on an Android device.

My device is Nexus 7 and 6.0.1 version.

Below is the API I used:

InetAddress[] inets = InetAddress.getAllByName("hostname.com");
InetAddress address = InetAddress.getByName("hostname.com");

Those two API calls work fine for IPv4, but do not work for IPv6.

It shows the below errors:

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)

I also tried nslookup in Android terminal, and it works fine with IPv6:

image

Is there any way I can get an IPv6 address from a hostname using Android APIs?


UPDATE: I have used the dnsjava library to solve my problem.

Please refer to this related discuss:

Return IPv6 in Java

Community
  • 1
  • 1
sowrdking
  • 229
  • 1
  • 3
  • 12

0 Answers0