Obtener el nombre e IP del servidor con Java

03/Oct/2009 Java , 2 Comentarios

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.

Vídeos sobre Java


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

2 comentarios en “Obtener el nombre e IP del servidor con Java”

Víctor Cuervo

Sergio

Buenos días ¿cómo puedo obtener la IP pública? porque este método me devuelve la IP privada, por favor

Víctor Cuervo

Rafa

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.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*