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.
[code]/*
- 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
[/code]