Estoy tratando de resolver un nombre de host a su 'IP correspondiente.InetAddress.getByName falla detrás del proxy
Mi entorno es un mac en una red corporativa detrás de un servidor proxy, que se configura con un archivo .pac a través de las preferencias del sistema (configuración de proxy automático). Hasta ahora todo está funcionando bien y puedo acceder a los recursos dentro y fuera de mi red corporativa.
Resolver los hosts dentro de mi red funciona perfectamente bien: InetAddress.getByName("host.local");
Pero cuando se utiliza nombres de host externos, aparece un UnknownHostException: InetAddress.getByName("google.com");
produce
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)
(estoy un poco sorprendido acerca de Inet6AddressImpl
aquí)
Por lo que yo entiendo es InetAddress.getByName utilizando los mecanismos nativos para resolver nombres de host. Por lo tanto, no creo que el error esté causado por una configuración de proxy faltante dentro de java jvm.
¿Pero qué más puede ser, si todo lo demás funciona bien?
Algunos (tal vez) útil información adicional:
estoy usando un MacBook,
ifconfig
muestra las interfaces lo0, gif0, stf0, en0, fw0, en1 -> conectado a la red, con IPv4 dirección.nslookup google.com
en la consola vuelve** server can't find google.com: NXDOMAIN
El mismo código en una máquina Windows dentro de la red producida la misma excepción
alguna idea acerca de la causa de este error? ¿O hay otras formas de resolver nombres de host en Java?
Gracias por su respuesta Alexander. No soy un experto en redes, pero ¿esto no significa que no puedo acceder a google.com (y, por supuesto, a este sitio;) desde dentro de la red corporativa? Sé que el archivo pac define las reglas para usar el proxy y cuándo no. ¿Tal vez un problema relacionado con "ejecutar" el pac para la solicitud de un jvm? – Benjamin
Alexander es correcto. Su tráfico llega a Google al ser enviado al proxy, que realiza la búsqueda de DNS antes de enviar el tráfico al servidor web de Google. – EricLaw
@Benjamin. Si puede acceder a 'google.com' a través de su navegador corporativo, entonces puede necesitar configurar el proxy para su programa java. Para obtener ayuda, lea este artículo: http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html –