public static void getAllMacAdress() { Enumeration<NetworkInterface> netInterfaces = null; try { // 獲得所有網絡接口 netInterfaces = NetworkInterface.getNetworkInterfaces(); while (netInterfaces.hasMoreElements()) { System.out .println("=============================================="); String mac = ""; StringBuffer sb = new StringBuffer(); NetworkInterface ni = netInterfaces.nextElement(); System.out.println("DisplayName: " + ni.getDisplayName()); System.out.println("Name: " + ni.getName()); byte[] macs = ni.getHardwareAddress(); // 該interface不存在HardwareAddress,繼續下一次循環 if (macs == null) { continue; } for (int i = 0; i < macs.length; i++) { mac = Integer.toHexString(macs[i] & 0xFF); if (mac.length() == 1) { mac = '0' + mac; } sb.append(mac + "-"); } mac = sb.toString(); mac = mac.substring(0, mac.length() - 1); System.out.println(mac); Enumeration<InetAddress> ips = ni.getInetAddresses(); while (ips.hasMoreElements()) { System.out.println("IP: " + ips.nextElement().getHostAddress()); } } } catch (SocketException e) { e.printStackTrace(); } }
本方法需要使用使用jdk1.6