如何在Web应用程序中查找客户端系统mac地址

时间:2014-09-10 06:21:21

标签: java mac-address

我需要找到访问我网站的客户端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“

我该怎么做?

1 个答案:

答案 0 :(得分:2)

服务器端Java代码永远不会返回客户端的MAC地址。

为此,您需要在客户端运行代码。例如,在IE中你可以使用Javascript + ActiveX获得它。在其他浏览器(包括IE)中,您可以使用Java Applet执行此操作,但安全限制可能会阻止applet访问包括MAC地址在内的系统信息。