feed twitter facebook LinkedIn facebook

Java » Obtener el nombre e IP del servidor con Java

Octubre 3, 2009 por Víctor Cuervo . 5306 visitas 1 Comentario Imprimir Imprimir

La clase InetAddress es la clase Java que nos permite obtener el nombre de un host y su IP. Esta clase no tiene un constructor, sino que para incializarla deberemos de pasarle el nombre o la IP de un host en concreto o bien indicarle que la maquina de la cual queremos obtener los parametros es la maquina local. Para esto último utilizaremos el método getLocalHost().

  1. InetAddress address = InetAddress.getLocalHost();

Una vez inicializada InetAdress pasaremos a obtener el nombre e IP del servidor local. Para ello nos valdremos de las siguientes funciones:

1. String getHostName(), que nos devolverá una cadena con el nombre de la dirección InetAddress seleccionada. En nuestro caso nos devolverá el nombre de la maquina local.

  1. String sHostName;
  2. sHostName = address.getHostName();

2. byte[] getAddress(), para obtener la IP del servidor. El método devolverá un array de bytes de 4 posiciones, cada una de las cuales equivale a un campo del número IP (A.B.C.D). Los números vienen en formato binario con signo a si que tendremos que "descifrarlo".

  1. // Cogemos la IP
  2. byte[] bIPAddress = address.getAddress();
  3.  
  4. // IP en formato String
  5. String sIPAddress = "";
  6.  
  7. for (int x=0; x<bIPAddress.length; x++) {
  8. if (x > 0) {
  9. // A todos los numeros les anteponemos
  10. // un punto menos al primero
  11. sIPAddress += ".";
  12. }
  13. // Jugamos con los bytes y cambiamos el bit del signo
  14. sIPAddress += bIPAddress[x] & 255;
  15. }

Este proceso se explica en detalle en el artículo Obtener la IP de un Host.

Descargar el Codigo
Descargar el código
Error en el Codigo
Error en el código
Foro sobre Java
Foro sobre Java
tags: , , , ,

Artículos relacionados:

1 comentario »

Redifusión RSS de los comentarios de la entrada. TrackBack URI

  1. Rafa
    Mayo 23, 2012 #

    Ahora ya no es necesario lo del punto 2. Con esta línea basta:

    String localIpAddress = InetAddress.getLocalHost().getHostAddress();

    el import es:

    import java.net.InetAddress;

    Se agradece de todas maneras el post, ya que gracias a eso, llegué a esto.

Deje un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*