Esto suena como algo que debería haberse preguntado antes, y tiene una especie de, pero estoy tratando de obtener el nombre de host local y las direcciones IP de una máquina, incluso cuando no se puede resolver a través de DNS (en Java).¿Cómo obtengo el nombre de host local si no se puede resolver a través de DNS en Java?
Puedo obtener las direcciones IP locales sin resolución al iterar a través de NetworkInterfaces.getNetworkInterfaces()
.
Cualquier respuesta a esta pregunta que he encontrado indican que se use getLocalHost()
InetAddress localhost = java.net.InetAddress.getLocalHost();
hostName = localhost.getHostName();
pero esto arroja una UnknownHostException
si el nombre de host no se puede resolver a través de DNS.
¿No hay forma de obtener el nombre de host local sin una búsqueda de DNS que ocurra detrás de escena?
edición: la dirección de IP recuperada es 10.4.168.23 La excepción es java.net.UnknownHostException: cms1.companyname.com: cms1.companyname.com
(nombre de host cambió para pseudo-anonimato), y el archivo hosts no contiene el nombre de host. Pero hace saber su nombre de host, así que no estoy seguro de por qué no puedo obtenerlo sin una excepción.
El sistema operativo conoce el nombre de host, como cuando llamo getLocalHost (), arroja una excepción que contiene el nombre de host. Solo quiero poder obtener ese nombre de host sin una búsqueda. –
Asegúrate de que tu nombre de host no contenga caracteres de subrayado. Si está en Windows, no le impedirá utilizar guiones bajos en el nombre de host, pero no funciona con Java debido a la estricta verificación de los caracteres permitidos. – sinha