Java para obter o endereço IP e MAC da máquina
Algumas máquinas têm muitos cartões de rede virtual e alguns acidentes ocorrerão ao obter endereços IP, portanto, é necessária alguma verificação:
// obtenha o endereço MAC public static string getMacaddress () {try {Enumeração <NeworkInterface> allNetInterfaces = networkInterface.getNetworkInterfaces (); byte [] mac = null; while (allNetInterfaces.hasMoreElements ()) {NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement (); if (netInterface.isloopback () || netInterface.isvirtual () ||! netInterface.isup ()) {continuação; } 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 (Exceção e) {_logger.error ("Aquisição de endereço MAC falhou", e); } retornar ""; } // Obtenha o endereço IP public static string getipaddress () {try {enumeração <betworkInterface> allNetInterfaces = networkInterface.getNetworkInterfaces (); Inetaddress ip = null; while (allNetInterfaces.hasMoreElements ()) {NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement (); if (netInterface.isloopback () || netInterface.isvirtual () ||! netInterface.isup ()) {continuação; } else {enumeração <inetaddress> endereços = netInterface.getineTAddresses (); while (endereços.hasMoreElements ()) {ip = endereços.nextElement (); if (ip! = NULL && ip Instância do INET4Address) {return ip.gethostAddress (); }}}}} catch (Exceção e) {_logger.error ("Aquisição de endereço IP falhou", e); } retornar ""; } No código acima
netInterface.isloopback () || netInterface.isvirtual () || ! netInterface.isup ()
Ele pode filtrar algumas cartões de rede não física ou redes inúteis e, em seguida, recuperar o endereço IPv4 na Internet.
Falando nisso, existem alguns comumente usados:
1. Obtenha o sistema operacional da máquina atual
public final Static String win_os = "Windows"; public final estático string mac_os = "mac"; public final Static String linux_os = "Linux"; public final Static String Other_OS = "OUTRO"; 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; } retornar outros_os; } 2. Configure proxy de acesso HTTP
/ *** Definir proxy http*/ public static void sethttpProxy () {Propriedades prop = system.getProperties (); // defina http para acessar o endereço do servidor proxy a ser usado prop.setProperty ("http.proxyhost", http_proxy_host); // Defina http para acessar a porta do servidor proxy a ser usada Prop.setProperty ("http.proxyport", http_proxy_port); // A configuração de um host que não precisa ser acessado por meio de um servidor proxy pode usar o caractere curinga e vários endereços são separados por | com Prop.SetProperty ("http.nonproxyhosts", remoteconfig.proxt_filter_domain); } / *** Remova http proxy* / public static void removerhttpProxy () {Propriedades prop = system.getProperties (); Prop.Remove ("http.proxyhost"); Prop.Remove ("http.proxyport"); Prop.Remove ("http.nonproxyhost"); Prop.Remove ("http.nonproxyhost"); } Quando o aplicativo iniciar, basta defini -lo antes de acessar a solicitação HTTP. Obviamente, http.nonproxyhosts podem ser definidos sem definir, o que significa que todas as solicitações HTTP são proxyed.
Quanto ao proxy HTTPS, você pode defini -lo assim:
System.setProperty ("https.proxyhost", "http_proxy_host");
System.setProperty ("https.proxyport", "http_proxy_port");
O acima é um exemplo de Java obtendo IP e Mac nativos. Amigos necessitados podem se referir a ele. Obrigado pelo seu apoio a este site!