Java untuk mendapatkan alamat ip dan mac mesin
Beberapa mesin memiliki banyak kartu jaringan virtual, dan beberapa kecelakaan akan terjadi ketika mendapatkan alamat IP, sehingga beberapa verifikasi diperlukan:
// Dapatkan alamat Mac public string statis getMaCadDress () {coba {enumeration <networkInterface> allNetInterfaces = networkInterface.getNetworkInterfaces (); byte [] mac = null; while (allNetInterfaces.hasmoreElements ()) {networkInterface netInterface = (networkInterface) allNetInterfaces.nextElement (); if (netInterface.isloopback () || netInterface.isvirtual () ||! netInterface.isUp ()) {lanjutan; } else {mac = netInterface.getHardWareAddress (); if (mac! = null) {stringBuilder sb = new stringBuilder (); untuk (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 ("Akuisisi alamat MAC gagal", e); } kembali ""; } // Dapatkan alamat IP public static string getIpAddress () {coba {enumeration <networkInterface> allNetInterfaces = networkInterface.getNetworkInterfaces (); Inetaddress ip = null; while (allNetInterfaces.hasmoreElements ()) {networkInterface netInterface = (networkInterface) allNetInterfaces.nextElement (); if (netInterface.isloopback () || netInterface.isvirtual () ||! netInterface.isUp ()) {lanjutan; } else {enumeration <InetAddress> alamat = netInterface.getInetAddresses (); while (addresses.hasmoreElements ()) {ip = addresses.nextElement (); if (ip! = null && ip instance dari inet4address) {return ip.getHostAddress (); }}}}} catch (Exception e) {_logger.Error ("Akuisisi alamat IP gagal", e); } kembali ""; } Dalam kode di atas
netInterface.isloopback () || netInterface.isvirtual () || ! netinterface.isup ()
Ini dapat memfilter beberapa kartu jaringan non-fisik atau jaringan yang tidak berguna dengan baik, dan kemudian mengambil alamat IPv4 di internet.
Berbicara tentang ini, ada beberapa yang umum digunakan:
1. Dapatkan sistem operasi mesin saat ini
string statis final publik win_os = "windows"; string statis final publik mac_os = "mac"; string statis final publik linux_os = "linux"; String statis akhir publik Other_os = "Other"; 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. Siapkan Proxy Access HTTP
/ *** Atur proxy http*/ public static void setHttpproxy () {properties prop = system.getProperties (); // atur http untuk mengakses alamat server proxy yang akan digunakan prop.setProperty ("http.proxyhost", http_proxy_host); // atur http untuk mengakses port server proxy yang akan digunakan prop.setProperty ("http.proxyport", http_proxy_port); // Menyiapkan host yang tidak perlu diakses melalui server proxy dapat menggunakan * karakter wildcard, dan beberapa alamat dipisahkan oleh | dengan prop.setProperty ("http.nonproxyhosts", remoteConfig.proxt_filter_domain); } / *** Hapus proxy http* / public static void remeCTTPPROXY () {properties prop = system.getProperties (); prop.remove ("http.proxyhost"); prop.remove ("http.proxyport"); prop.remove ("http.nonproxyhost"); prop.remove ("http.nonproxyhost"); } Saat aplikasi dimulai, cukup atur sebelum mengakses permintaan HTTP. Tentu saja, http.nonproxyhosts dapat diatur tanpa pengaturan, yang berarti bahwa semua permintaan HTTP proksi.
Adapun proxy https, Anda dapat mengaturnya seperti ini:
System.setProperty ("https.proxyhost", "http_proxy_host");
System.setProperty ("https.proxyport", "http_proxy_port");
Di atas adalah contoh Java mendapatkan IP dan Mac asli. Teman yang membutuhkan dapat merujuknya. Terima kasih atas dukungan Anda untuk situs ini!