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);
}