[JAVA] Obtener IP de una interfaz concreta

B

Ver EDIT's, está resuelto :)

Hola, os expongo mi duda:

Estoy desarrollando un sistema de cajeros. Básicamente hay varios cajeros que se conectan a un mismo consorcio, y ese consorcio habla con el banco correspondiente (vaya, que está conectado con varios banco también). Tengo ya especificado un protocolo de mensajes y respuestas. Para que un banco se conecte al consorcio tiene que mandarle varios datos, uno de ellos es la dirección del socket en este formato: xxx.xxx.xxx.xxx/xxxx; siendo las últimas x's el puerto de la aplicación.

Como muchas máquinas tienen varias interfaces de red, java provee una forma de obtener la ip asociada a una interfaz concreta mandándole el nombre en formato string ("wlan0", por ejemplo), mi idea es leerla de un fichero de configuración.

Bien, la cosa es que, tal y como he visto en internet lo he hecho, y me da la siguiente ip 192.168.0.90, cuando sé a ciencia cierta que la ip de wlan0 es 10.30.x.x. ¿Qué puede pasar? Estoy usando el sdk de sun sobre Debian 6.

Ahora estoy intentando probarlo en Windows, pero no sé como referirme a las interfaces de red. La duda básicamente es que no tengo ni idea de cómo hacerlo bien, porque si hago el típico:

InetAddress.getLocalHost().toString()

Me devuelve la primera IP que pilla (que en mi caso, ahora en Windows, no es la que quiero).

Y si hago:

System.out.println(ConnManager.sendSocket.getLocalAddress());

Me devuelve 0.0.0.0/0.0.0.0. Aunque creo que esto tiene más que ver con el tema bind(), que la verdad no acabo de pillar muy bien cómo va.

Alguna idea? xD [ConnManager.sendSocket es el socket xD]

EDIT: Sobre Ubuntu 10.10 me funciona bien, me saca tanto la Ipv6 como la Ipv4, no tengo más que comprobar cuál es la válida. Alguna idea de por qué no funciona bien en Debian?

EDIT 2: Acabo de probar en windows con la interfaz "net4" que es la que me corresponde y también funciona.

EDIT 3: Parece que en Debian también me ha funcionado, tenía algo guarro en la configuración de red. Hell yeah, para esto escribo el post.

RaymaN

Es la magia del foro DEV, al escribir #1 encuentras la respuesta en 0, xD

1 respuesta
B

#2: El caso es que me han ido saliendo las cosas desde que he posteado ¬¬

Usuarios habituales