Como tive muitos problemas para encontrar algo que funcionasse para pegar o mac da placa tanto em windows e linux vou deixar aqui a solução
que me foi útil, aqui está um pouco do que eu achei na net e as alterações que eu fiz para poder funcionar, espero que seja útil para alguém.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package license;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
/**
*
* @author jefersonsc
*/
public class NetworkInfo {
public static String getMacAddress() throws SocketException, UnknownHostException{
String ip = InetAddress.getLocalHost().getHostAddress();
String loopBack = ip.substring(0, 3);
if(loopBack.equals("127")){
ip = getFirstIP();
}
InetAddress localHost = InetAddress.getByName(ip);
NetworkInterface netInter = NetworkInterface.getByInetAddress(localHost);
byte[] macAddressBytes = netInter.getHardwareAddress();
String macAddress = String.format ( "%1$02x-%2$02x-%3$02x-%4$02x-%5$02x-%6$02x",
macAddressBytes[0], macAddressBytes[1],
macAddressBytes[2], macAddressBytes[3],
macAddressBytes[4], macAddressBytes[5] ).toUpperCase();
return macAddress;
}
static private String getFirstIP( ) {
java.util.Enumeration<java.net.NetworkInterface> ifaces = null;
try {
ifaces = java.net.NetworkInterface.getNetworkInterfaces();
} catch (java.net.SocketException e) { }
for (; ifaces.hasMoreElements();) {
java.util.Enumeration<java.net.InetAddress> addrs = ifaces.nextElement().getInetAddresses();
for (; addrs.hasMoreElements(); ) {
java.net.InetAddress addr = addrs.nextElement();
if (!addr.isLoopbackAddress() && !(addr instanceof java.net.Inet6Address))
return addr.getHostName();
}
}
return "127.0.0.1";
}
/*
* Main
*/
public final static void main(String[] args) {
try {
System.out.println("Network infos");
System.out.println(" Operating System: " + System.getProperty("os.name"));
System.out.println(" IP/Localhost: " + InetAddress.getLocalHost().getHostAddress());
System.out.println(" MAC Address: " + getMacAddress());
} catch(Throwable t) {
t.printStackTrace();
}
}
}//By Jeferson Chanan