Foros del Web » Programación para mayores de 30 ;) » Java »

Conseguir ip de un dispositivo en red

Estas en el tema de Conseguir ip de un dispositivo en red en el foro de Java en Foros del Web. Buenos dias Actualmente, me encuentra bloqueado para poder conseguir la direccion ip de un dispositivo conectado a mi red. Intente utilizado la interfaz de red, ...
  #1 (permalink)  
Antiguo 17/04/2015, 08:47
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 10 años, 10 meses
Puntos: 9
Conseguir ip de un dispositivo en red

Buenos dias

Actualmente, me encuentra bloqueado para poder conseguir la direccion ip de un dispositivo conectado a mi red. Intente utilizado la interfaz de red, sin embargo, me arroja como resultados la direccion de loopback y la direccion de mi equipo; a continuacion coloco el codigo:

Código Java:
Ver original
  1. try
  2.             {
  3.             Enumeration<NetworkInterface> n = NetworkInterface.getNetworkInterfaces();
  4.                 for (; n.hasMoreElements();)
  5.                 {
  6.                         NetworkInterface e = n.nextElement();
  7.                         System.out.println("Interface: " + e.getName());
  8.                         Enumeration<InetAddress> a = e.getInetAddresses();
  9.                         for (; a.hasMoreElements();)
  10.                         {
  11.                                 InetAddress addr = a.nextElement();
  12.                                 System.out.println("  " + addr.getHostAddress());
  13.                         }
  14.                 }
  15.             }catch (Exception e)
  16.               {
  17.                System.out.println(e.toString());
  18.               }

Ademas, intente utilizando PrintServiceLookup (es una impresora de tarjetas), sin embargo los metodos de esa clase, no devuelven la direccion ip del dispositivo; a continuacion el codigo con que probe:

Código Java:
Ver original
  1. PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
  2.      
  3.             System.out.println("Printer Services found:");
  4.             printService(services);
  5.      
  6.             PrintService service = PrintServiceLookup.lookupDefaultPrintService();
  7.      
  8.             if (service!=null) {
  9.                 System.out.println("Default Printer Service found:");
  10.                 System.out.println(service);
  11.             }

Código Java:
Ver original
  1. private static void printService(PrintService[] services) {
  2.             if (services!=null && services.length>0) {
  3.                 for (int i = 0; i < services.length; i++) {
  4.                     System.out.println(services[i]);
  5.                 }
  6.             }
  7.         }

Si alguien ha podido resolver este problema, sientase libre de compartir

Muchas gracias por su tiempo

Saludos
  #2 (permalink)  
Antiguo 17/04/2015, 13:36
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 8 años
Puntos: 182
Respuesta: Conseguir ip de un dispositivo en red

Buenas,

Lo comentas como si fuese algo trivial de conseguir, sin embargo no lo es. Para ese tipo de cosas existen los escáneres de red.
Acaso la IP de dicho dispositivo no es conocida y fija en la red? Tampoco hay un servicio de DNS que permita asignarle un nombre para localizarlo fácilmente?

Si no es así, lo más fácil que puedes hacer es consultar la tabla ARP de tu interfaz, que te devolverá la lista de dispositivos que conoce y sus IPs. En cualquier caso eso no te garantiza ni mucho menos al 100% que vaya a encontrar.

Obviamente Java no tiene ninguna clase del JDK para hacer algo así. Si estás en windows podrías lanzar el comando "arp -a" desde java con un Runtime.getRuntime().exec y parsear la respuesta para obtener la IP deseada.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 17/04/2015, 14:10
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 10 años, 10 meses
Puntos: 9
Respuesta: Conseguir ip de un dispositivo en red

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Lo comentas como si fuese algo trivial de conseguir, sin embargo no lo es. Para ese tipo de cosas existen los escáneres de red.
Acaso la IP de dicho dispositivo no es conocida y fija en la red? Tampoco hay un servicio de DNS que permita asignarle un nombre para localizarlo fácilmente?

Si no es así, lo más fácil que puedes hacer es consultar la tabla ARP de tu interfaz, que te devolverá la lista de dispositivos que conoce y sus IPs. En cualquier caso eso no te garantiza ni mucho menos al 100% que vaya a encontrar.

Obviamente Java no tiene ninguna clase del JDK para hacer algo así. Si estás en windows podrías lanzar el comando "arp -a" desde java con un Runtime.getRuntime().exec y parsear la respuesta para obtener la IP deseada.

Un saludo
Hola Falken que tal?

En nigun momento he dicho que sea trivial, de ser asi ya se hubiera resuelto facilmente... Si, la direccion IP es fija y es determinada por el personal de soporte tecnico, lo que pasa es que ellos no poseen esa informacion almacenada en una base de datos, por ejemplo, por lo que leerlo de algun tipo de soporte no seria una opcion (aparto, trato de evitar que a alguno de ellos se le olvidara registrar esa informacion en algun soporte, y mi aplicacion no funcionaria)
Dejame probar las diferentes opciones de ARP, a ver si alguna se adapta a lo que necesito.. Por que me indicas que ARP no es 100% fiable?

Muchas gracias

Saludos
  #4 (permalink)  
Antiguo 17/04/2015, 14:21
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 9 años
Puntos: 401
Respuesta: Conseguir ip de un dispositivo en red

Ummm, con java?
no se.. no se.... creo que es complejo.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #5 (permalink)  
Antiguo 19/04/2015, 23:39
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 8 años
Puntos: 182
Respuesta: Conseguir ip de un dispositivo en red

Buenas,

Cita:
En nigun momento he dicho que sea trivial
No he dicho que lo hayas dicho.

Cita:
por lo que leerlo de algun tipo de soporte no seria una opcion
Y por qué no les pides el datos de la IP y lo almacenas en un simple fichero de propiedades?

Cita:
Por que me indicas que ARP no es 100% fiable?
Es algo que puedes contestar tu mismo si miras lo que son las tabla ARP antes de "probar las diferentes opciones de ARP": http://es.wikipedia.org/wiki/Address...ution_Protocol

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: clase, conseguir, dispositivo, ip, red
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:53.