java 获取本地mac_Java获取本机MAC地址

为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网和广域网MAC,查了查可以直接用JDK的方法。

MAC可用于局域网验证,提高安全性。

import java.net.InetAddress;

import java.net.NetworkInterface;

import java.net.SocketException;

import java.net.UnknownHostException;

/*

* 物理地址是48位,别和ipv6搞错了

*/

public class LOCALMAC {

/**

* @param args

* @throws UnknownHostException

* @throws SocketException

*/

public static void main(String[] args) throws UnknownHostException, SocketException {

// TODO Auto-generated method stub

//得到IP,输出PC-201309011313/122.206.73.83

InetAddress ia = InetAddress.getLocalHost();

System.out.println(ia);

getLocalMac(ia);

}

private static void 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

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());

}

}

运行结果如下:

PC-201309011313/122.206.73.83

mac数组长度:6

每8位:d0

每8位:27

每8位:88

每8位:1f

每8位:89

每8位:51

本机MAC地址:D0-27-88-1F-89-51

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值