public static String getMac() {
try {
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
if (networkInterfaces != null) {
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
byte[] hardwareAddress = networkInterface.getHardwareAddress();
if (hardwareAddress != null && hardwareAddress.length > 0) {
String mac = bytesToHexMac(hardwareAddress);
if (StrUtil.isNotEmpty(mac)) {
return mac.toUpperCase();
}
}
}
}
} catch (SocketException e) {
log.error(e.getMessage());
}
return null;
}
public static String bytesToHexMac(byte[] bytes) {
StringBuilder buf = new StringBuilder(bytes.length * 2);
for (int i = 0; i < bytes.length; i++) {
buf.append(String.format("%02x", new Integer(bytes[i] & 0xff)));
if (i != bytes.length - 1) {
buf.append(":");
}
}
return buf.toString();
}
方法中找到就直接返回了,可自由发挥。