由于在网上没有找到正确获取到Mac地址的方式,我原来的代码在Windows上可以获取到,但是苹果电脑上却不行,所以找了一下原因,发现是需要获取本机所有的ip然后找到一个有mac地址信息的数据,代码不复杂,但用得少,记录一下以便日后使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**  
* 获取计算机MAC地址
* @return mac
*/
public static String getLocalMac(){
// 这里可以放一个随机数或者唯一id做一个兜底
String mac = "";
try {
// 获取本机主机名
String hostName = InetAddress.getLocalHost().getHostName();
// 获取本机所有的IP地址
InetAddress[] inetAddresses = InetAddress.getAllByName(hostName);
// 遍历IP地址
for (InetAddress inetAddress : inetAddresses) {
NetworkInterface net = NetworkInterface.getByInetAddress(inetAddress);
byte[] macBytes = net.getHardwareAddress();
if (macBytes != null){
return transBytesToStr(macBytes);
}
}
} catch (UnknownHostException | SocketException e) {
e.printStackTrace();
}
return mac;
}