code: public static byte[] realMacAddress() {
          byte[] mac = null;
          try {
              // enumerations are wonky...
              Enumeration<NetworkInterface> networkInterfaces = getNetworkInterfaces();
              while (networkInterfaces.hasMoreElements()) {
                  NetworkInterface n = networkInterfaces.nextElement();
                  byte[] possibleMac = n.getHardwareAddress();
                  if (possibleMac != null && possibleMac.length == 6) {
                      mac = possibleMac;
                      break;
                  }
              }
              if (mac == null) {
                  throw new UnsupportedOperationException("Could not retrieve hardware MAC address, no MAC addresses detected");
              }
          } catch (SocketException e) {
              throw new UnsupportedOperationException("Could not retrieve hardware MAC address, SocketException occurred", e);
          }
          return mac;
      }
docs: Return a 6 byte array where each byte represents a value in the MAC
  address of the first valid interface found or an
  {@link UnsupportedOperationException} is thrown if an error occurs.