如图所示的无线路由max地址,,挺说可以利用java的工具类java.net.NetworkInterface获取次无线网卡的max,我看了某个人的微博,他这样写:“通过java.net.NetworkInterface获取本机正...
如图所示的无线路由max地址,
,挺说可以利用java的工具类java.net.NetworkInterface获取次无线网卡的max,我看了某个人的微博,他这样写:“通过java.net.NetworkInterface获取本机正在使用的网卡中的第一个,各平台通用,winows和SUSE Linux下测试正常(如果想获取所有的网卡MAC——通过isUp()方法来区分是否正在运作,或想获取所有正在使用的网卡的MAC,稍作改动即可)的MAC地址”,代码如下:
import java.net.NetworkInterface;
import java.util.Enumeration;
public class MacUtil {
private MacUtil() {
}
public static String getMacAddress() throws Exception{
Enumeration ni = NetworkInterface.getNetworkInterfaces();
while(ni.hasMoreElements()){
NetworkInterface netI = ni.nextElement();
byte[] bytes = netI.getHardwareAddress();
if(netI.isUp() && netI != null && bytes != null && bytes.length == 6){
StringBuffer sb = new StringBuffer();
for(byte b:bytes){
//与11110000作按位与运算以便读取当前字节高4位
sb.append(Integer.toHexString((b&240)>>4));
//与00001111作按位与运算以便读取当前字节低4位
sb.append(Integer.toHexString(b&15));
sb.append("-");
}
sb.deleteCharAt(sb.length()-1);
return sb.toString().toUpperCase();
}
}
return null;
}
public static void main(String[] args) throws Exception{
System.out.println(MacUtil.getMacAddress());
}
}
我在我的电脑上运行,结果为“78-E4-00-3F-83-1E” ,要获取所有的max我要怎么样修改呢?
展开