Necesito información de configuración de red en mi aplicación que es más de lo que proporcionan java.net.NetworkInterface
y java.net.InetAddress
. Me gustaría incluir información como subredes, puertas de enlace y servidores DNS, pero el código debe ser portátil tanto para plataformas Windows como para Linux.Obtener información de red en Java en plataformas Windows y Linux
He investigado para hacerlo haciendo Runtime.getRuntime().exec("ipconfig")
para Windows y Runtime.getRuntime().exec("ifconfig")
para Linux y analizando los resultados. Tal vez haya una mejor manera de hacer esto o un proyecto de código abierto que pueda usar.
Gracias de antemano por cualquier idea que me puede orientar en la dirección correcta
al invocar ifconfig e ipconfig se rompe el uso de la portabilidad. ¿Podría publicar qué código tiene actualmente? – Woot4Moo
Hice un método de fábrica para llamar a las implementaciones separadas para cada sistema operativo. Para Windows, estoy llamando a 'ipconfig/all' y analizando los resultados. Para Linux, estoy llamando a 'ifconfig', 'ruta -n', y 'cat /etc/resolv.conf'. –
Además, las instalaciones predeterminadas de algunas distribuciones de Linux no incluyen/sbin en la ruta, por lo que las llamadas pueden fallar dependiendo del usuario –