java เพื่อรับที่อยู่ IP และ MAC ของเครื่อง
เครื่องบางเครื่องมีการ์ดเครือข่ายเสมือนจริงจำนวนมากและอุบัติเหตุบางอย่างจะเกิดขึ้นเมื่อได้รับที่อยู่ IP ดังนั้นจำเป็นต้องมีการตรวจสอบบางอย่าง:
// รับที่อยู่ MAC ที่อยู่สตริงคงที่สาธารณะ getMacAddress () {ลอง {การแจงนับ <NetWorkInterface> allNetInterfaces = networkInterface.getNetWorkInterfaces (); ไบต์ [] mac = null; ในขณะที่ (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 (); สำหรับ (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 สาธารณะสตริงคงที่ getIpAddress () {ลอง {การแจกแจง <NetWorkInterface> allNetInterfaces = networkInterface.getNetWorkInterfaces (); InetAddress IP = NULL; ในขณะที่ (AllNetInterfaces.hasmoreElements ()) {NetworkInterface netInterface = (NetworkInterface) AllNetInterfaces.nextElement (); if (netInterface.isloopback () || netInterface.isvirtual () ||! netInterface.isup ()) {ดำเนินการต่อ; } else {enumeration <inetaddress> ที่อยู่ = netInterface.getInetAddresses (); ในขณะที่ (addresses.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"; Public Final String mac_os = "Mac"; สตริงคงสุดท้ายสาธารณะ linux_os = "linux"; สตริงคงสุดท้ายสาธารณะอื่น ๆ ether_os = "อื่น ๆ "; สตริงคงที่สาธารณะ getos () {ถ้า (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. ตั้งค่า HTTP Access Proxy
/ *** ตั้งค่า http proxy*/ โมฆะคงที่สาธารณะ sethttpproxy () {คุณสมบัติ 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* / โมฆะคงที่สาธารณะ 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 คุณสามารถตั้งค่าได้เช่นนี้:
System.SetProperty ("https.proxyhost", "http_proxy_host");
System.SetProperty ("https.proxyport", "http_proxy_port");
ข้างต้นเป็นตัวอย่างของ Java ที่ได้รับ IP และ Mac ดั้งเดิม เพื่อนที่ต้องการสามารถอ้างถึงได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!