java mac地址获取mac地址_java 获取mac地址的两种方法(推荐)
时间: 2023-09-11 22:11:14 浏览: 936
get_mac_address_using_java.rar_获取IP地址_获取mac地址
获取 MAC 地址是一个常见的需求,在 Java 中可以通过以下两种方式来获取:
1. 使用 NetworkInterface 类获取 MAC 地址。
```java
import java.net.*;
import java.util.*;
public class MacAddressUtil {
public static String getMacAddress() throws Exception {
InetAddress ip = InetAddress.getLocalHost();
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
byte[] mac = network.getHardwareAddress();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++) {
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
return sb.toString();
}
}
```
2. 使用 Runtime 类执行命令获取 MAC 地址。
```java
import java.io.*;
public class MacAddressUtil {
public static String getMacAddress() throws Exception {
Process process = Runtime.getRuntime().exec("ifconfig");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
if (line.contains("ether")) {
String[] words = line.trim().split("\\s+");
return words[1];
}
}
return null;
}
}
```
第一种方法使用 NetworkInterface 类来获取 MAC 地址,这种方式可靠性较高,但是需要注意的是,如果主机有多个网卡,可能会获取到多个 MAC 地址。此外,该方法需要在主机上运行,因此不适用于获取远程主机的 MAC 地址。
第二种方法使用 Runtime 类执行命令来获取 MAC 地址,这种方式比较简单,但是可靠性较差,因为它依赖于命令输出的格式。此外,该方法需要在主机上运行,因此也不适用于获取远程主机的 MAC 地址。
阅读全文