Java, чтобы получить IP и MAC -адрес машины
Некоторые машины имеют много виртуальных сетевых карт, и при получении IP -адресов будут происходить некоторые несчастные случаи, поэтому необходима некоторая проверка:
// Получить MAC -адрес public Static String getMacAddress () {try {enumeration <networkInterface> allnetInterfaces = networkInterface.getNetworkInterface (); байт [] mac = null; while (allnetInterfaces.hasmoreElements ()) {networkInterface netInterface = (networkInterface) allnetInterfaces.nextElement (); if (netInterface.isloopback () || netInterface.isvirtual () ||! netInterface.isup ()) {продолжить; } 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 -адреса", E); } возвращаться ""; } // Получить IP -адрес public Static String getipAddress () {try {enumeration <networkInterface> allnetInterfaces = networkInterface.getNetworkInterface (); InetAddress ip = null; while (allnetInterfaces.hasmoreElements ()) {networkInterface netInterface = (networkInterface) allnetInterfaces.nextElement (); if (netInterface.isloopback () || netInterface.isvirtual () ||! netInterface.isup ()) {продолжить; } else {enumeration <inetAddress> address = netInterface.getinetAddresses (); while (address.hasmoreelements ()) {ip = address.nextelement (); if (ip! = null && ip instanceof inet4address) {return ip.gethostaddress (); }}}}} catch (Exception e) {_logger.Error ("Ошибка получения IP -адреса", E); } возвращаться ""; } В приведенном выше коде
netInterface.isloopback () || netInterface.isvirtual () || ! netInterface.isup ()
Он может хорошо отфильтровать некоторые нефизические сетевые карты или бесполезные сети, а затем получить адрес IPv4 в Интернете.
Говоря об этом, есть некоторые часто используемые:
1. Получить операционную систему текущей машины
публичная окончательная статическая строка win_os = "windows"; публичная окончательная статическая строка mac_os = "mac"; public final Static String linux_os = "linux"; публичная окончательная статическая строка other_os = "Другое"; 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; } вернуть другое_ос; } 2. Настройка прокси доступа к HTTP
/ *** Установить http proxy*/ public static void sethttpproxy () {Properties prop = System.getProperties (); // Установить http для доступа к адресу прокси -сервера, который будет использоваться prop.setProperty ("http.proxyhost", http_proxy_host); // Установить HTTP для доступа к порту прокси -сервера, который будет использоваться prop.setProperty ("http.proxyport", http_proxy_port); // Настройка хоста, к которому не нужно получить доступ через прокси -сервер, может использовать символ * подстановочного знака, а несколько адресов разделены | с prop.setproperty ("http.nonproxyhosts", remoteconfig.proxt_filter_domain); } / *** Удалить http proxy* / public static void removehttpproxy () {Properties prop = System.getProperties (); prop.remove ("http.proxyhost"); prop.remove ("http.proxyport"); prop.remove ("http.nonproxyhost"); prop.remove ("http.nonproxyhost"); } Когда приложение запускается, просто установите его перед доступом к HTTP -запросу. Конечно, http.nonproxyhosts могут быть установлены без настройки, что означает, что все запросы HTTP являются прокси.
Что касается HTTPS Proxy, вы можете установить его так:
System.SetProperty ("https.proxyhost", "http_proxy_host");
System.SetProperty ("https.proxyport", "http_proxy_port");
Выше приведено примером того, как Java получает нативную IP и Mac. Друзья в нуждающихся могут ссылаться на это. Спасибо за поддержку этого сайта!