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

标签 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” 适用于所有客户端系统。

我该怎么做?

最佳答案

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

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

关于java - 如何在 Web 应用程序中查找客户端系统 MAC 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758591/

相关文章:

java - 无法在 URI || 中的分布式缓存中加载文件获取 NULLPointerException

macos - 在 OS X 中获取 mac 地址的 Shell 命令

guid - 您生成的 GUID 识别您的身份有多容易?

windows - 是否存在某些无法在Windows上运行的MAC地址供应商代码,或者我的代码还有其他问题吗?

linux - 与 Wifi 断开连接时无法在 Linux 上使用 ioctl 获取 mac 地址

java - moquette 用户的权限与访问控制列表中写入的权限不同

java - 如何在最初给定的时区中存储和显示日期?

java - 流图以查找最新 key 的值

java - Android 上的相机应用程序

ios - 获取连接的 wifi 路由器的制造商名称