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:
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();
Gracias por tu aporte
ResponderEliminarMuy buen aporte muchas gracias
ResponderEliminar