本方法需要使用使用jdk1.6。
public static void getAllMacAdress() {
Enumeration<NetworkInterface> netInterfaces = null;
try {
// 获得所有网络接口
netInterfaces = NetworkInterface.getNetworkInterfaces();
while (netInterfaces.hasMoreElements()) {
System.out
.println("==============================================");
String mac = "";
StringBuffer sb = new StringBuffer();
NetworkInterface ni = netInterfaces.nextElement();
System.out.println("DisplayName: " + ni.getDisplayName());
System.out.println("Name: " + ni.getName());
byte[] macs = ni.getHardwareAddress();
// 该interface不存在HardwareAddress,继续下一次循环
if (macs == null) {
continue;
}
for (int i = 0; i < macs.length; i++) {
mac = Integer.toHexString(macs[i] & 0xFF);
if (mac.length() == 1) {
mac = '0' + mac;
}
sb.append(mac + "-");
}
mac = sb.toString();
mac = mac.substring(0, mac.length() - 1);
System.out.println(mac);
Enumeration<InetAddress> ips = ni.getInetAddresses();
while (ips.hasMoreElements()) {
System.out.println("IP: "
+ ips.nextElement().getHostAddress());
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}