首页 > 解决方案 > 如何在 Restful Web 服务中访问客户端的 MAC 地址

问题描述

我有一个有角度的应用程序,它正在打一个休息电话:

http://localhost:8765/test/iptest

在我的控制器中:

@GetMapping(value = "test/iptest")
public ResponseEntity<Object> doTest() {
    log.debug("Inside Test");
    return new ResponseEntity<>("Test success", HttpStatus.OK);
}

如何使用此请求访问客户端的IPMAC 地址?

编辑: 我能够使用HttpServletRequest访问客户端的 IP 地址:

    import javax.servlet.http.HttpServletRequest;
    import javax.ws.rs.core.Context;

    @GetMapping(value = "test/iptest")
    public ResponseEntity<Object> doTest(@Context HttpServletRequest request) {
        log.debug("IP Address is:"+request.getRemoteAddr());
        return new ResponseEntity<>("Test success", HttpStatus.OK);
    }

但我无法访问MAC 地址

标签: javarest

解决方案


您不能 - 除了在本地 LAN 上,远程 MAC 地址不会暴露给您的端点。服务器收到的数据包的以太网报头中的 MAC 地址将是最近的路由器的 MAC 地址,该路由器是路径中的最后一跳。

即使在本地 LAN 上,您也无法获得 IP 套接字的此信息 - 查找本地 MAC 地址需要在操作系统的 ARP 表中四处寻找。


推荐阅读