获取单个MAC地址:
public static void main(String[] args) throws UnknownHostException, SocketException {
InetAddress ia = InetAddress.getLocalHost();
System.out.println(ia);
getLocalMac(ia);
}
public static String getLocalMac(InetAddress ia) throws SocketException {
// TODO Auto-generated method stub
// 获取网卡,获取地址
byte[] mac = NetworkInterface.getByInetAddress(ia).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);
System.out.println("每8位:" + str);
if (str.length() == 1) {
sb.append("0" + str);
} else {
sb.append(str);
}
}
String macAddress = sb.toString().toUpperCase();
System.out.println("本机MAC地址:" + macAddress);
return macAddress;
}
获取所有MAC地址:
public static String getLocalMac () throws SocketException {
Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
while (enumeration.hasMoreElements()) {
StringBuffer stringBuffer = new StringBuffer();
NetworkInterface networkInterface = enumeration.nextElement();
if (networkInterface != null) {
byte[] bytes = networkInterface.getHardwareAddress();
if (bytes != null) {
for (int i = 0; i < bytes.length; i++) {
if (i != 0) {
stringBuffer.append("-");
}
int tmp = bytes[i] & 0xff; // 字节转换为整数
String str = Integer.toHexString(tmp);
if (str.length() == 1) {
stringBuffer.append("0" + str);
} else {
stringBuffer.append(str);
}
}
String mac = stringBuffer.toString().toUpperCase();
System.out.println(mac);
}
}
}
return "";
}