我需要找到正在访问我的网站的客户端 MAC 地址。我已经尝试过使用java代码。
try {
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while(networkInterfaces.hasMoreElements())
{
NetworkInterface network = networkInterfaces.nextElement();
System.out.println("network : " + network);
byte[] mac = network.getHardwareAddress();
if(mac == null)
{
System.out.println("null mac");
}
else
{
System.out.print("MAC address : ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++)
{
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
val = sb.toString();
System.out.println(sb.toString());
break;
}
}
} catch (SocketException e){
e.printStackTrace();
}
但它显示为“network : name:eth0 (eth0) MAC 地址:EC-A8-6B-77-A9-AD” 适用于所有客户端系统。
我该怎么做?
最佳答案
服务器端 Java 代码永远不会返回客户端的 MAC 地址。
为此,您需要在客户端运行代码。例如,在 IE 中,您可以使用 Javascript+ActiveX 来实现。在其他浏览器(包括 IE)中,您可以使用 Java Applet 来执行此操作,但安全限制可能会阻止 Applet 访问包括 MAC 地址在内的系统信息。
关于java - 如何在 Web 应用程序中查找客户端系统 MAC 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758591/