Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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
Cita de: 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

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 (java) [Seleccionar]

/*
*Autor: Darhius929
**/
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.InputStream;

public class getIP {

private String publicIP = null;

public static void main(String args[]){
new getIP();
}

   public getIP() {
    try {
               URL tempURL = new URL("http://www.whatismyip.org/");
               HttpURLConnection tempConn = (HttpURLConnection)tempURL.openConnection();
               InputStream tempInStream = tempConn.getInputStream();
               InputStreamReader tempIsr = new InputStreamReader(tempInStream);
               BufferedReader tempBr = new BufferedReader(tempIsr);        
               
               publicIP = tempBr.readLine();
               
               tempBr.close();
               tempInStream.close();
               
       } catch (Exception ex) {
               publicIP = "<No es posible resolver la direccion IP>";  
         }
           
        System.out.println("Mi IP Publica es " +publicIP);
   }
}



Saludos
Título: Re: Obtener mi propia IP pública en JAVA.
Publicado por: Leyer en 1 Abril 2010, 05:26 AM
Cita de: Darhius en  1 Abril 2010, 03:27 AM
Cita de: 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

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 (java) [Seleccionar]

/*
*Autor: Darhius929
**/
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.InputStream;

public class getIP {

private String publicIP = null;

public static void main(String args[]){
new getIP();
}

    public getIP() {
    try {
                URL tempURL = new URL("http://www.whatismyip.org/");
                HttpURLConnection tempConn = (HttpURLConnection)tempURL.openConnection();
                InputStream tempInStream = tempConn.getInputStream();
                InputStreamReader tempIsr = new InputStreamReader(tempInStream);
                BufferedReader tempBr = new BufferedReader(tempIsr);       
               
                publicIP = tempBr.readLine();
               
                tempBr.close();
                tempInStream.close();
               
        } catch (Exception ex) {
                publicIP = "<No es posible resolver la direccion IP>";   
          }
           
         System.out.println("Mi IP Publica es " +publicIP);
    }
}

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!!!.