在获取mac地址的时候重点在于byte转int的时候转码的问题。
如 正码 0000 0111
那么反码就是1111 1000
补码就是 1111 1001
与正码相反的就是反码, 反码加1就是补码
内容仅为学习记录使用。
import java.net.InetAddress;
import java.net.NetworkInterface;
public class Test {
public static void main(String[] args) throws Exception {
InetAddress inetAddress = InetAddress.getLocalHost();
NetworkInterface networkInterface = NetworkInterface.getByInetAddress(inetAddress);
byte[] arr = networkInterface.getHardwareAddress();
StringBuilder sb = new StringBuilder();
String str;
for(byte item : arr){
int a = item & 0xff;
str = Integer.toHexString(a);
if(str.length() == 1){
str = "0" + str;
}
if(sb.length() == 0){
sb.append(str);
}else{
sb.append("-").append(str);
}
}
System.out.println(sb.toString());
}
}



