Java pour obtenir l'adresse IP et MAC de la machine
Certaines machines ont de nombreuses cartes réseau virtuelles, et certains accidents se produiront lors de l'obtention d'adresses IP, donc une vérification est nécessaire:
// Obtenez l'adresse MAC PUBLIC STATIQUE STATIQUE GETMACADdress () {try {énumération <WorkInterface> AllNetInterfaces = NetworkInterface.getNetWorkInterfaces (); octet [] mac = null; while (allNetInterfaces.hasmoreElements ()) {NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.NextElement (); if (netinterface.isloopback () || netInterface.isVirtual () ||! netInterface.isup ()) {continuant; } 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 ("MAC Address Acquisition a échoué", e); } retour ""; } // Obtenez l'adresse IP publique Static String getIpAddress () {try {énumération <AssujoutInterface> allNetInterfaces = NetworkInterface.getNetWorkInterfaces (); InetAddress ip = null; while (allNetInterfaces.hasmoreElements ()) {NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.NextElement (); if (netinterface.isloopback () || netInterface.isVirtual () ||! netInterface.isup ()) {continuant; } else {énumération <netAddress> adresses = netInterface.getinetAddress (); while (adresses.hasmoreElements ()) {ip = adresses.NextElement (); if (ip! = null && IP instanceof Inet4Address) {return ip.GethostAddress (); }}}}} catch (exception e) {_logger.error ("IP d'adresse IP Échec", e); } retour ""; } Dans le code ci-dessus
netInterface.isloopback () || netInterface.isvirtual () || ! netinterface.isup ()
Il peut bien filtrer certaines cartes réseau non physiques ou bien les réseaux inutiles, puis récupérer l'adresse IPv4 sur Internet.
En parlant de cela, il y en a des couramment utilisés:
1. Obtenez le système d'exploitation de la machine actuelle
Public Final Static String win_os = "Windows"; Public Final Static String Mac_OS = "Mac"; Public Final Static String Linux_OS = "Linux"; Public Final Static String autre_OS = "Autre"; String statique public 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 autre_os; } 2. Configurer le proxy d'accès HTTP
/ ** * SET HTTP Proxy * / public static void sethttpproxy () {Properties prop = System.getProperties (); // Définit HTTP pour accéder à l'adresse du serveur proxy à utiliser Prop.SetProperty ("http.proxyhost", http_proxy_host); // Définissez HTTP pour accéder au port du serveur proxy à utiliser Prop.SetProperty ("http.proxyport", http_proxy_port); // La configuration d'un hôte qui n'a pas besoin d'être accessible via un serveur proxy peut utiliser le caractère * Wildcard, et plusieurs adresses sont séparées par | avec Prop.SetProperty ("http.NonProxyHosts", RemoteConfig.proxt_filter_domain); } / ** * supprimer le proxy http * / public static void reoushTTPProxy () {Properties prop = System.getProperties (); Prop.Remove ("http.proxyhost"); Prop.Remove ("http.proxyport"); Prop.Remove ("http.NonProxyHost"); Prop.Remove ("http.NonProxyHost"); } Lorsque l'application démarre, définissez-le simplement avant d'accéder à la demande HTTP. Bien sûr, Http.NonProxyHosts peut être défini sans réglage, ce qui signifie que toutes les demandes HTTP sont proxyées.
Quant au proxy HTTPS, vous pouvez le définir comme ceci:
System.SetProperty ("https.proxyhost", "http_proxy_host");
System.SetProperty ("https.proxyport", "http_proxy_port");
Ce qui précède est un exemple de Java obtenant une IP native et un Mac. Les amis dans le besoin peuvent y faire référence. Merci pour votre soutien à ce site!