一核心程序如下:
public class SocketMac {
//将读取的计算机MAC地址字节转化为字符串
public static String transBytesToStr(byte[] bytes){
StringBuffer buffer = new StringBuffer();
for(int i = 0; i < bytes.length; i++){
if(i != 0)
buffer.append(“-“);
//bytes[i]&0xff将有符号byte数值转换为32位有符号整数,其中高24位为0,低8位为byte[i]
int intMac = bytes[i]&0xff;
//toHexString函数将整数类型转换为无符号16进制数字
String str = Integer.toHexString(intMac);
if(str.length() == 0){
buffer.append(“0”);
}
buffer.append(str);
}
return buffer.toString().toUpperCase();
}
//获取计算机MAC地址
public static String getLocatMac(){
String result = “”;
try {
InetAddress adress = InetAddress.getLocalHost();
NetworkInterface net = NetworkInterface.getByInetAddress(adress);
byte[] macBytes = net.getHardwareAddress();
result = transBytesToStr(macBytes);
} catch (UnknownHostException e) {
result = “”;
e.printStackTrace();
} catch (SocketException e) {
result = “”;
e.printStackTrace();
}finally {
return result;
}
}
//main方法测试,打印本地计算机mac地址
public static void main(String[] args) {
System.out.println(SocketMac.getLocatMac());
}
}
转载请注明来源网站:blog.ytso.com谢谢!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/14593.html