2016-04-07 17 views
1

我想捕获客户端的mac地址,从java的IP细节。可能从java获取客户端mac地址?

我试过下面的程序,但它只显示服务器的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 details.Any帮助将不胜感激。

+0

java代码在服务器中运行,所以你得到服务器的mac地址。您需要处理请求对象以获取客户端的信息 – SpringLearner

回答

0

MAC地址不与TCP/IP(第3层及以上)流量一起传输。 MAC地址属于第2层,仅在单个LAN段内有意义。

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