[Métodos] Conocer IP donde ejecutamos Java


Para conocer nuestra ip local debemos recurrir a la clase java.net.InetAddress

Esta clase representa una dirección de protocolo de internet(IP) o bueno es lo que la documentación misma dice.

Solo basta con importar la clase, instanciar un objeto de la misma a través del método getLocalHost()

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import java.net.InetAddress;
...
InetAddress ip;
try {
    ip = InetAddress.getLocalHost();
    System.out.print("ipLocal: ");
    System.out.println(ip.getHostAddress());
} catch (UnknownHostException e) {
    e.printStackTrace();
}

La salida será del estilo:
1
ipLocal: 10.0.0.157


También InetAddress nos permitirá conocer el nombre de la pc y el dominio:
1
2
3
4
System.out.print("nombre del PC: ");
System.out.println(ip.getHostName());
System.out.print("dominio del PC: ");
System.out.println(ip.getCanonicalHostName());

1
2
nombre del PC: Dar10-PC
dominio del PC: algunDominio



Ip pública


Para hallar nuestra ip pública debemos recurrir a un servicio como por ejemplo http://checkip.amazonaws.com

Este servicio de amazon, nos devuelve un InputStream con nada más ni nada menos que la ip del solicitando, pero nos vale para obtener nuestra propia ip publica.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
...
URL ipPublica;
BufferedReader in = null;
InputStreamReader isr = null;
try {
    ipPublica = new URL("http://checkip.amazonaws.com");
    isr = new InputStreamReader(ipPublica.openStream());
    in = new BufferedReader(isr);
    String ip = in.readLine(); 
    System.out.print("IP publica: ");
    System.out.println(ip);
} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        if (in != null) {
            in.close();
        }
        if(isr != null){
            isr.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

1
IP publica: aqui va tu ip

No hay comentarios:

Publicar un comentario