Java para obtener la dirección IP y MAC de la máquina
Algunas máquinas tienen muchas tarjetas de red virtuales, y algunos accidentes ocurrirán al obtener direcciones IP, por lo que se necesita alguna verificación:
// Obtenga la cadena publicitaria de la dirección MAC getMacAddress () {try {enumeration <NetworkInterface> AllNetInterfaces = networkInterface.getNetworkInterfaces (); byte [] mac = null; while (allNetInterfaces.hasmoreElements ()) {networkInterface netInterface = (NetworkInterface) AllNetInterfaces.NextElement (); if (netInterface.IsloOpback () || netInterface.isVirtual () ||! netInterface.isup ()) {continuar; } else {Mac = netInterface.gethardWAreadDress (); if (mac! = null) {stringBuilder sb = new StringBuilder (); for (int i = 0; i <mac.length; i ++) {sb.append (string.format ("%02x%s", mac [i], (i <mac.length - 1)? " -": "")); } if (sb.length ()> 0) {return sb.ToString (); }}}}} Catch (Exception e) {_logger.error ("Falló la adquisición de la dirección MAC", e); } devolver ""; } // Obtenga la dirección IP Public static String getIpAddress () {try {enumeration <NetworkInterface> AllNetInterfaces = networkInterface.getNetWorkInterfaces (); Inetaddress ip = nulo; while (allNetInterfaces.hasmoreElements ()) {networkInterface netInterface = (NetworkInterface) AllNetInterfaces.NextElement (); if (netInterface.IsloOpback () || netInterface.isVirtual () ||! netInterface.isup ()) {continuar; } else {Enumeration <InetAddress> direcciones = netInterface.getInetAddresses (); while (direcciones.hasmoreElements ()) {ip = direccional.nextelement (); if (ip! = null && ip instanceOf inet4address) {return ip.gethostaddress (); }}}}} Catch (Exception e) {_logger.error ("Falló la adquisición de la dirección IP", e); } devolver ""; } En el código anterior
netinterface.isloopback () || netInterface.ISVirtual () || ! netinterface.isup ()
Puede filtrar bien algunas tarjetas de red no físicas o redes inútiles, y luego recuperar la dirección IPv4 en Internet.
Hablando de esto, hay algunos usados comúnmente:
1. Obtenga el sistema operativo de la máquina actual
Cadena estática final pública Win_os = "Windows"; Cadena estática final pública Mac_os = "Mac"; Cadena estática final pública linux_os = "Linux"; Cadena estática final pública OTRO_OS = "OTRO"; public static string getos () {if (systemUtils.is_os_windows) {return win_os; } if (systemUtils.is_os_mac || systemUtils.is_os_mac_osx) {return Mac_os; } if (systemUtils.is_os_unix) {return linux_os; } return other_os; } 2. Configure el proxy de acceso HTTP
/ *** Establecer http proxy*/ public static void sethttpproxy () {propiedades prop = system.getProperties (); // Establecer http para acceder a la dirección del servidor proxy que se utilizará prop.setProperty ("http.proxyhost", http_proxy_host); // Establecer http para acceder al puerto del servidor proxy para ser utilizado prop.setProperty ("http.proxyport", http_proxy_port); // Configuración de un host al que no es necesario acceder a través de un servidor proxy puede usar el carácter * comodín, y se separan múltiples direcciones por | con prop.setProperty ("http.nonproxyhosts", remoteconfig.proxt_filter_domain); } / *** eliminar http proxy* / public static void removeHttpProxy () {Properties pro = System.getProperties (); prop.remove ("http.proxyhost"); prop.remove ("http.proxyport"); prop.remove ("http.nonproxyhost"); prop.remove ("http.nonproxyhost"); } Cuando se inicia la aplicación, simplemente configúrela antes de acceder a la solicitud HTTP. Por supuesto, los http.nonproxyhosts se pueden configurar sin configurar, lo que significa que todas las solicitudes HTTP están proxyadas.
En cuanto al proxy HTTPS, puede configurarlo así:
System.SetProperty ("https.proxyhost", "http_proxy_host");
System.SetProperty ("https.proxyport", "http_proxy_port");
Lo anterior es un ejemplo de Java que obtiene IP y Mac nativos. Los amigos necesitados pueden referirse a él. ¡Gracias por su apoyo para este sitio!