Saltar la navegación

3.2.- Métodos y ejemplos de uso de InetAddress.

Estudiantes sentados y de perfil, trabajndo.

La clase InetAddress proporciona objetos que puedes utilizar para manipular tanto direcciones IP como nombres de dominio. También proporciona métodos para resolver los nombres de host a sus direcciones IP y viceversa.

Una instancia de InetAddress consta de una dirección IP y en algunos casos también del nombre de host asociado. Esto último depende de si se ha creado con el nombre de host o bien ya se ha aplicado la resolución de nombres.

Esta clase no tiene constructores. Sin embargo, InetAddress dispone de métodos estáticos que devuelven objetos InetAddress. Te indicamos cuáles son esos métodos:

  • getLocalHost(). Devuelve un objeto de tipo InetAddress con los datos de direccionamiento de mi equipo en la red local (no del conocido localhost).
  • getByName(String host). Devuelve un objeto de tipo InetAddress con los datos de direccionamiento del host que le pasamos como parámetro. Donde el parámetro host tiene que ser un nombre o IP válido, ya sea de Internet (como iesalandalus.org o 195.78.228.161), o de tu red de área local (como documentos.servidor o 192.168.0.5). Incluso puedes poner localhost, o cualquier otra IP o nombre NetBIOS de tu red local.
  • getAllByName(String host). Devuelve un array de objetos de tipo InetAddress con los datos de direccionamiento del host pasado como parámetro. Recuerda que en Internet es frecuente que un mismo dominio tenga a su disposición más de una IP.

Todos estos métodos pueden generar una excepción UnknownHostException si no pueden resolver el nombre pasado como parámetro.

Algunos métodos interesantes de un objeto InetAddress para resolver nombres son los siguientes:

  • getHostAddress(). Devuelve en una cadena de texto la correspondiente IP.
  • getAddress(). Devuelve un array formado por los grupos de bytes de la IP correspondiente.

Otros métodos interesantes de esta clase son:

  • getHostName(). Devuelve en una cadena de texto el nombre del host.
  • isReachable(int tiempo). Devuelve TRUE o FALSE dependiendo de si la dirección es alcanzable en el tiempo indicado en el parámetro.

En el siguiente enlace tienes un ejemplo de uso de InetAddress. Con este ejemplo tratamos de ilustrar el uso de los métodos anteriores para resolver algunos nombres a su dirección o direcciones IP, tanto en la red local como en Internet. Por ello, para probarlo, debes tener conexión a Internet, en otro caso sólo se ejecutará la parte relativa a la red local, y se lanzará la correspondiente excepción al intentar resolver nombres de Internet.

Autoevaluación

Pregunta 1

Señala si la afirmación siguiente es verdadera o falsa:

El método getLocalHost() devuelve la IP del equipo de nombre localhost.

Citas para pensar

"Es absolutamente imposible demostrarlo todo."Aristóteles