java获取本机ip和mac怎么操作
问题描述:java获取本机ip和mac怎么操作
推荐答案 本回答由问问达人推荐
要在Java中获取本机的IP地址和MAC地址,可以使用java.net包中的NetworkInterface类和InetAddress类。NetworkInterface类提供了与网络接口相关的信息,包括获取MAC地址。InetAddress类提供了与IP地址相关的方法,包括获取本机的IP地址。下面是一个示例代码,演示如何使用Java获取本机的IP地址和MAC地址:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
public class GetLocalIPAndMAC {
public static void main(String[] args) {
try {
Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
byte[] mac = networkInterface.getHardwareAddress();
if (mac != null) {
StringBuilder macAddress = new StringBuilder();
for (byte b : mac) {
macAddress.append(String.format("%02X:", b));
}
if (macAddress.length() > 0) {
macAddress.deleteCharAt(macAddress.length() - 1);
}
System.out.println("本机MAC地址: " + macAddress.toString());
}
Enumeration inetAddresses = networkInterface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress.getHostAddress().indexOf(':') == -1) {
System.out.println("本机IP地址: " + inetAddress.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们首先使用getNetworkInterfaces()方法获取本地主机上的网络接口列表。然后,我们迭代每个网络接口,并使用getHardwareAddress()方法获取MAC地址。将MAC地址格式化为人类可读的形式,并打印输出。
接下来,我们使用getInetAddresses()方法获取与网络接口关联的IP地址列表。我们将过滤掉回环地址和IPv6地址,并打印输出符合条件的IP地址。
请注意,MAC地址可能不是每个网络接口都可用,并且获取MAC地址需要特定的授权和权限。此外,根据您的网络配置,可能会有一些特殊情况需要考虑,例如虚拟网络接口或使用特定的网络接口。
查看其它两个剩余回答