您的位置:首页 > 其它

获取mac地址又一方法

2012-11-28 09:06 162 查看
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
byte[] hardwareAddress = networkInterface.getHardwareAddress();

if (hardwareAddress != null) {
for (int i = 0; i < hardwareAddress.length; i++) {
System.out.print(String.format("%x", hardwareAddress[i]));
if (i != hardwareAddress.length - 1) {
System.out.print(":");
}
}
System.out.println();
}
}
以前的方法

public static String[] getMacs() throws IOException {
Runtime runtime = Runtime.getRuntime();
List<String> alMac = new ArrayList<String>();
BufferedReader rd = null;
try {
Process process = runtime.exec("ipconfig /all");//这种方法不能跨os, 只能根据不同的os写不同的命令
InputStream is = process.getInputStream();
rd = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = rd.readLine()) != null) {
if (line.indexOf("物理地址") > -1 || line.toLowerCase().startsWith("physical address")) {
int index = line.lastIndexOf(":");
if (line.length() - 1 >= index && index > -1) {
String mac = line.substring(index + 1);
alMac.add(mac);
}
}
}
} finally {
if (rd != null) rd.close();
}
return alMac.toArray(new String[0]);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: