java - 可以从java获取客户端mac地址吗?

标签 java ip

我想从java捕获客户端mac地址、ip详细信息。

我尝试了以下程序。但它只显示服务器 IP 详细信息。

InetAddress ip;
    try {

        ip = InetAddress.getLocalHost();
        System.out.println("Current IP address : " + ip.getHostAddress());

        NetworkInterface network = NetworkInterface.getByInetAddress(ip);

        byte[] mac = network.getHardwareAddress();

        System.out.print("Current 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) ? "-" : ""));
        }

我想访问客户端 mac ID 详细信息。如有任何帮助,我们将不胜感激。

最佳答案

MAC 地址不通过 TCP/IP(第 3 层及以上)流量传输。 MAC 地址属于第 2 层,并且仅在单个 LAN 网段内才有意义。

在客户端和服务器位于不同 LAN 网段的一般情况下,无法在服务器上获取客户端的 MAC 地址。如果客户端和服务器位于同一 LAN 上,那么您可能能够通过查询本地 ARP 表来检索 MAC,这可能需要提升权限。

关于java - 可以从java获取客户端mac地址吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467542/

相关文章:

java - JButton 更改默认边框

java - Dijkstra 算法 Java 添加邻接关系

java - Hibernate ManyToOne 保存对象

java - 使用Java获取外部IP地址

sockets - 在 Golang 中,如何接收套接字绑定(bind)到特定地址/端口的多播数据包?

java - 用于读入模型的 @XmlRootElement 注释

java - 在 Apache POI 中的 Excel 工作表之间切换

python - 检测是否支持 IPv6、与操作系统无关、没有外部程序?

networking - 以太网和无线 IP 地址的区别?

centos - 无法在 OVH 中向 vps 服务器添加额外的 IP