import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
public static void main(String[] args) throws SocketException, UnknownHostException {
// StringBuilder sb = new StringBuilder();
// Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
// byte[] mac = null;
// while (allNetInterfaces.hasMoreElements()) {
// NetworkInterface netInterface = allNetInterfaces.nextElement();
// if (netInterface.isLoopback() || netInterface.isVirtual() || netInterface.isPointToPoint() || !netInterface.isUp()) {
// continue;
// } else {
// mac = netInterface.getHardwareAddress();
// if (mac != null) {
// for (int i = 0; i < mac.length; i++) {
// sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "\n"));
// }
// }
// }
// }
// System.out.println(sb.toString());
// InetAddress ia = InetAddress.getLocalHost();
// System.out.println(ia);
System.out.println("本机mac地址:" + getLocalMac());
}
private static String getLocalMac() throws SocketException, UnknownHostException {
InetAddress ipAddress = InetAddress.getLocalHost();
byte[] mac = NetworkInterface.getByInetAddress(ipAddress).getHardwareAddress();
// System.out.println("mac数组长度:"+mac.length);
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < mac.length; i++) {
if (i != 0) {
sb.append("-");
}
//字节转换为整数
int temp = mac[i] & 0xff;
String str = Integer.toHexString(temp);
if (str.length() == 1) {
sb.append("0" + str);
} else {
sb.append(str);
}
}
return sb.toString().toUpperCase();
}
代码注释部分是获取多个mac地址,没注释的是正常获取mac地址的。