從es代碼裏面看到的, 注意, 一個機器可能有多個mac地址, 代碼中取出第一個有效的java
private static byte[] getMacAddress() throws SocketException { Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); if (en != null) { while (en.hasMoreElements()) { NetworkInterface nint = en.nextElement(); if (!nint.isLoopback()) { // Pick the first valid non loopback address we find byte[] address = nint.getHardwareAddress(); if (isValidAddress(address)) { return address; } } } } // Could not find a mac address return null; } private static boolean isValidAddress(byte[] address) { if (address == null || address.length != 6) { return false; } for (byte b : address) { if (b != 0x00) { return true; // If any of the bytes are non zero assume a good // address } } return false; }