java.net.InetAddress resuelve nombres de host usando predeterminado host-de resolución de nombres de la máquina local de forma predeterminada:¿Cómo configurar la resolución del nombre de host para usar un servidor DNS personalizado en Java?
nombre de host-a-IP se lleva a cabo la resolución de direcciones mediante el uso de una combinación de información de configuración de máquina local y la red de servicios de nombres tales como el Sistema de nombres de dominio (DNS) y el Servicio de información de red (NIS). Los servicios de nombres particulares que se utilizan son por defecto la máquina local configurada es. Para cualquier nombre de host, se devuelve su dirección IP correspondiente. [source]
¿Cómo podemos configurar este comportamiento sin modificar resolver el nombre de host predeterminado de la máquina local?
Por ejemplo, hay alguna forma de configurar java.net.InetAddress tal que resuelve los nombres de host a través de OpenDNS (208.67.222.222, 208.67.220.220) o Google Public DNS (2001: 4860: 4860 :: 8888, 2001: 4860: 4860: : 8844)?
¿O es la única solución para crear explícitamente solicitudes de paquete DNS, enviarlas a los servidores a través de java.net.DatagramSocket o java.net.Socket, y analizar las respuestas?
Según lo documentado en el mismo sitio: "Es posible que estas propiedades no se admitan en versiones futuras". ¿Hay alguna otra manera de lograr eso? – bernatp
No. No si quiere usar 'java.net.InetAddress'. Si está bien utilizando un mecanismo diferente, puede utilizar una biblioteca DNS de terceros (por ejemplo, [dnsjava] (http://www.dnsjava.org/)). La única razón real por la que las propiedades podrían cambiar es si Oracle revisa la implementación de 'java.net' en alguna versión futura de Java. Si esto sucede, es probable que proporcionen una nueva solución a este problema en ese momento también. – Pace
Se reacondicionó 'java.net' en Java 9, por lo que las clases' sun.net' necesarias para lograr esto ya no existen. – ndm13