今天项目中遇到获取mac地址的需求,查找了api之后总结下,贴出来大家拿去使用吧!
package com.zxw.mac;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
/**
* <B>说 明</B>:获取MAC
*
* @author 作 者 名:郑雄伟<br/>
* E-mail :zhengxiongwei89@163.com
* @version 版 本 号:V1.0.<br/>
* 创建时间:2017年7月13日 下午3:59:48
*/
public class NetMacUtil {
public static InetAddress getInetAddress() throws UnknownHostException{
//获取指定IP的InetAddress
//String ip ="127.0.0.1";
//InetAddress addr = InetAddress.getByName(ip);
//获取本地InetAddress
InetAddress addr = InetAddress.getLocalHost();
return addr;
}
public static void getLocalMac(InetAddress ia) throws SocketException {
//获取网卡,获取地址
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);
}
}
System.out.println("本机MAC地址:"+sb.toString().toUpperCase());
}
public static void main(String[] args) {
try {
InetAddress inetAddress = getInetAddress();
getLocalMac(inetAddress);
} catch (Exception e) {
e.printStackTrace();
}
}
}