String firstInterface = null;
Map<String, String> addressByNetwork = new HashMap<>();
Enumeration<NetworkInterface> networkInterfaces;
try
{ networkInterfaces = NetworkInterface.getNetworkInterfaces();
while(networkInterfaces.hasMoreElements())
{NetworkInterface network = networkInterfaces.nextElement();
byte[] bmac = network.getHardwareAddress();
if(bmac != null)
{ StringBuilder sb = new StringBuilder();
for (int i = 0; i < bmac.length; i++)
{ sb.append(String.format("%02X%s", bmac[i], (i < bmac.length - 1) ? "-" : "")); }
if(sb.toString().isEmpty()==false)
{ addressByNetwork.put(network.getName(), sb.toString());
}
if(sb.toString().isEmpty()==false && firstInterface == null)
{ firstInterface = network.getName();
}
}
}
} catch (SocketException e)
{ system.out.println(e.getMessage());
}
if(firstInterface != null)
{ MACAddress= addressByNetwork.get(firstInterface);
}