java - 如何在 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);
}
如何使用此请求访问客户端的IP和MAC 地址?
编辑: 我能够使用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 地址
解决方案
您不能 - 除了在本地 LAN 上,远程 MAC 地址不会暴露给您的端点。服务器收到的数据包的以太网报头中的 MAC 地址将是最近的路由器的 MAC 地址,该路由器是路径中的最后一跳。
即使在本地 LAN 上,您也无法获得 IP 套接字的此信息 - 查找本地 MAC 地址需要在操作系统的 ARP 表中四处寻找。
推荐阅读
- python - python“.tp_doc”属性的 Doxygen 文档…
- amazon-web-services - gzFiles : 从 Spark 的 s3 存储桶中读取 csv.gz 文件
- ruby-on-rails - Rspec json 测试结果的日期格式错误
- android - 为什么我必须将权限添加到清单中,尽管我确实在开始时请求它们
- python - python pil颜色填充
- python - 在烧瓶中提供静态文件,输出是文件名而不是它的内容
- powershell - 根据从文件创建的文件夹将文件复制到文件夹
- python - 将一列 CSV 列表缩减为单个列表
- jmeter - Jmeter Debug Sampler 不显示正则表达式提取器变量
- java - Maven 访问 gcloud