Conocer mi IP con Java

Para conocer nuestra IP dentro de una red interna podemos hacerlo mediante el objeto InetAddress. (java.net.InetAddress):


          InetAddress IP;
                  try {
                         IP = InetAddress.getLocalHost();
                         System.out.println("Mi ip local es = "+IP.getHostAddress());
                 } catch (UnknownHostException e) {
                                 e.printStackTrace();
                 }



Para conocer tu IP externa, debes hacer una llamada al exterior porque desde tu propia maquina no sabes cual es tu ip, ya que realmente la ip pertenece al router que es tu puerta de enlace. (Por eso 3 ordenadores dentro de tu casa tendran la misma ip externa, ya que la ip se le asigna al router, que es realmente el router lo que usan los 3 ordenadores como puerta de enlace para salir a internet).

Asi que para conocer tu IP Externa debes hacer una peticion http fuera. Hay servicios que te devuelven esta info , como http://www.whatismyip.com/ , http://whatismyipaddress.com/,  y el mejor de todos es http://checkip.amazonaws.com/ que devuelve unicamente tu ip en el contenido de la respuesta.
Aqui tienes un ejemplo del codigo:

import java.net.*;
import java.io.*;

                URL whatismyip = new URL("http://checkip.amazonaws.com");
  BufferedReader in = new BufferedReader(new InputStreamReader(
                  whatismyip.openStream()));

         String ip = in.readLine(); 
                System.out.println("My Public ip is = "+ip);
  in.close();
 
 

Comentarios

Publicar un comentario

Entradas populares de este blog

Reiniciar usuario de SVN Subversion

Subir campos Blob a BBDD (Oracle) con Java

Reproducir mp3 con Java