Foro de elhacker.net

Programación => Java => Mensaje iniciado por: 23time en 31 Marzo 2010, 05:15 am



Título: [SOLUCIONADO]Obtener mi propia IP pública en JAVA.
Publicado por: 23time en 31 Marzo 2010, 05:15 am
Buenas.

Como podeis leer en el título del post, lo que estoy intentando es obtener mi propia IP pública con un programa en JAVA.

No se si esto es posible o como se podría hacer.

¿Alguien tiene alguna idea de como podría obtener esta información en JAVA?.

Un saludo y mil gracias  ;D


Título: Re: Obtener mi propia IP pública en JAVA.
Publicado por: Shell Root en 31 Marzo 2010, 05:22 am
Podrias realizar una peticion a la pagina www.cualesmiip.com y desde alli recoger el resultado.


Título: Re: Obtener mi propia IP pública en JAVA.
Publicado por: Blitzkrieg' en 31 Marzo 2010, 05:28 am
He intentado varias cosas pero solo me sale 127.0.1.1  :xD


Título: Re: Obtener mi propia IP pública en JAVA.
Publicado por: sirdarckcat en 31 Marzo 2010, 06:09 am
ip=(new java.net.Socket('www.google.com', 80)).getLocalAddress().getHostAddress());

si estas tras una NAT te va a dar la IP local.. para obtener la externa debes hacer algo como conectarte a gmail-smtp-in.l.google.com en el puerto 25 y mandar un EHLO foo:
C:\Users\sdc>nc -vvv gmail-smtp-in.l.google.com 25
DNS fwd/rev mismatch: gmail-smtp-in.l.google.com != mail-gx0-f28.google.com
gmail-smtp-in.l.google.com [209.85.217.28] 25 (smtp) open
220 mx.google.com ESMTP 8si3058921gxk.26
EHLO foo
250-mx.google.com at your service, [190.249.52.xxx]
250-SIZE 35651584
250-8BITMIME
250-ENHANCEDSTATUSCODES
250 PIPELINING
^C


y 190.249.52.xxx seria tu IP.


Saludos!!


Título: Re: Obtener mi propia IP pública en JAVA.
Publicado por: 1mpuls0 en 1 Abril 2010, 03:27 am
Buenas.

Como podeis leer en el título del post, lo que estoy intentando es obtener mi propia IP pública con un programa en JAVA.

No se si esto es posible o como se podría hacer.

¿Alguien tiene alguna idea de como podría obtener esta información en JAVA?.

Un saludo y mil gracias  ;D

Jaja si es posible, con metodos propios de java no sé, pero se puede obtener haciendo una conexion con alguna pagina que obtenga tu ip y que te la regrese.

Código
  1. /*
  2.  *Autor: Darhius929
  3.  **/
  4. import java.net.URL;
  5. import java.net.HttpURLConnection;
  6. import java.io.InputStreamReader;
  7. import java.io.BufferedReader;
  8. import java.io.InputStream;
  9.  
  10. public class getIP {
  11.  
  12. private String publicIP = null;
  13.  
  14. public static void main(String args[]){
  15. new getIP();
  16. }
  17.  
  18.    public getIP() {
  19.     try {
  20.                URL tempURL = new URL("http://www.whatismyip.org/");
  21.                HttpURLConnection tempConn = (HttpURLConnection)tempURL.openConnection();
  22.                InputStream tempInStream = tempConn.getInputStream();
  23.                InputStreamReader tempIsr = new InputStreamReader(tempInStream);
  24.                BufferedReader tempBr = new BufferedReader(tempIsr);        
  25.  
  26.                publicIP = tempBr.readLine();
  27.  
  28.                tempBr.close();
  29.                tempInStream.close();
  30.  
  31.        } catch (Exception ex) {
  32.                publicIP = "<No es posible resolver la direccion IP>";  
  33.          }
  34.  
  35.         System.out.println("Mi IP Publica es " +publicIP);
  36.    }
  37. }
  38.  


Saludos


Título: Re: Obtener mi propia IP pública en JAVA.
Publicado por: Leyer en 1 Abril 2010, 05:26 am
Buenas.

Como podeis leer en el título del post, lo que estoy intentando es obtener mi propia IP pública con un programa en JAVA.

No se si esto es posible o como se podría hacer.

¿Alguien tiene alguna idea de como podría obtener esta información en JAVA?.

Un saludo y mil gracias  ;D

Jaja si es posible, con metodos propios de java no sé, pero se puede obtener haciendo una conexion con alguna pagina que obtenga tu ip y que te la regrese.

Código
  1. /*
  2.  *Autor: Darhius929
  3.  **/
  4. import java.net.URL;
  5. import java.net.HttpURLConnection;
  6. import java.io.InputStreamReader;
  7. import java.io.BufferedReader;
  8. import java.io.InputStream;
  9.  
  10. public class getIP {
  11.  
  12. private String publicIP = null;
  13.  
  14. public static void main(String args[]){
  15. new getIP();
  16. }
  17.  
  18.    public getIP() {
  19.     try {
  20.                URL tempURL = new URL("http://www.whatismyip.org/");
  21.                HttpURLConnection tempConn = (HttpURLConnection)tempURL.openConnection();
  22.                InputStream tempInStream = tempConn.getInputStream();
  23.                InputStreamReader tempIsr = new InputStreamReader(tempInStream);
  24.                BufferedReader tempBr = new BufferedReader(tempIsr);        
  25.  
  26.                publicIP = tempBr.readLine();
  27.  
  28.                tempBr.close();
  29.                tempInStream.close();
  30.  
  31.        } catch (Exception ex) {
  32.                publicIP = "<No es posible resolver la direccion IP>";  
  33.          }
  34.  
  35.         System.out.println("Mi IP Publica es " +publicIP);
  36.    }
  37. }
  38.  
Saludos

con NetworkInterface tambien es posible sin conectarse a una web ;)


Título: Re: Obtener mi propia IP pública en JAVA.
Publicado por: sirdarckcat en 1 Abril 2010, 07:02 am
NetworkInterface no funciona si estas detras de una NAT


Título: Re: Obtener mi propia IP pública en JAVA.
Publicado por: 23time en 13 Abril 2010, 01:43 am
Muchas gracias por vuestra ayuda chavales.

Al final he utilizado la idea de conectarme a una web y obtener la información que quiero desde ahí.

Como la aplicación debe conectarse a un servidor intermedio donde se aloja una web, he alojado ahi un pequeño documento en PHP el cual lo único que hace es proporcionarte tu IP pública y utilizando los métodos de JAVA del paquete net, he sacado lo que buscaba.

Una idea simple...., pero que a mi no se me ocurría xD

Un saludo!!!.