java - para - manual de programacion android pdf
¿Cómo se obtiene la dirección de ethernet usando Java? (4)
Me gustaría recuperar la dirección de Ethernet de la interfaz de red que se utiliza para acceder a un sitio web en particular.
¿Cómo se puede hacer esto en Java?
Solución Tenga en cuenta que la solución aceptada de getHardwareAddress
solo está disponible en Java 6. No parece haber una solución para Java 5 aparte de ejecutar i (f | p) confing.
En realidad, más allá de otras respuestas correctas (JDK 6; exec ''ifconfig''), hay bibliotecas basadas en JNI. Java Uuid Generator (JUG) 2.0 tiene código para algunas plataformas. Esto funciona en JDK 1.2 y superior al menos (quizás 1.1 par)
Puede obtener la dirección que se conecta a su ServerSocket usando http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#getInetAddresses()
Sin embargo, si su cliente se conecta a través de un NAT, obtendrá la dirección del enrutador y NO la dirección de Ethernet. Si está en su red local (a través de un concentrador / conmutador, no hay un enrutador con NAT), funcionará según lo previsto.
Puede usar Jxnet: https://github.com/ardikars/Jxnet (Require libpcap / winpcap)
java.net.NetworkInterface.getHardwareAddress (método agregado en Java 6)
Tiene que ser llamado en la máquina que le interesa - el MAC no se transfiere a través de los límites de la red (es decir, LAN y WAN). Si desea utilizarlo en un servidor de sitio web para interrogar a los clientes, debe ejecutar un applet que le informe el resultado.
Para Java 5 y anteriores, encontré el código de análisis de salida de las herramientas de línea de comando en varios sistemas .