I'm trying to resolve a host name to its' corresponding IP.
My environment is a mac in a corporate network behind a proxy server, which is configured with a .pac file via the system preferences (automatic proxy configuration). So far everything is working fine and I can access resources inside and outside my corporate network.
Resolving hosts within my network works perfectly fine:
InetAddress.getByName("host.local");
But when I use external host names, I get a UnknownHostException:
InetAddress.getByName("google.com");
produces
Exception in thread "main" java.net.UnknownHostException: google.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:850)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1201)
at java.net.InetAddress.getAllByName0(InetAddress.java:1154)
at java.net.InetAddress.getAllByName(InetAddress.java:1084)
at java.net.InetAddress.getAllByName(InetAddress.java:1020)
at java.net.InetAddress.getByName(InetAddress.java:970)
at Test.main(Test.java:67)
(I'm a little bit surprised about Inet6AddressImpl
here)
As far as I understand is InetAddress.getByName using the native mechanisms to resolve host names. So I don't think that the error is caused by a missing proxy configuration within the java jvm.
But what else can it be, if everything else is working fine?
Some (maybe) useful additional information:
I'm using a MacBook,
ifconfig
shows the interfaces lo0, gif0, stf0, en0, fw0, en1 -> connected to the network, with ipv4 address.nslookup google.com
on the console returns** server can't find google.com: NXDOMAIN
The same code on a windows machine within the network produced the same Exception
Any ideas about the cause of this error? Or are there other ways to resolve host names in java?