获取客户端计算机域名/ MAC

问题描述 投票:0回答:1

我正在尝试在JSF应用程序中获取客户信息。 但是我只能获取IP地址。

我已经试过了:

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
System.err.println(request.getRemoteAddr());
System.err.println(request.getRemoteHost());

问题是request.getRemoteAddr()request.getRemoteHost()都获取IP地址。

有什么方法可以获取客户端域名或其MAC地址?

更新(解决方案):

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) ipAddress = request.getRemoteAddr();  // IP

InetAddress addr = InetAddress.getByName(ipAddress);  // DOMAIN NAME from IP
String host = addr.getHostName();
jsf-2
1个回答
1
投票

如果需要域名,则必须自己对IP进行反向查找。 如果您想要MAC地址,则必须诉诸魔术。

您打算如何处理这些数据,为什么IP地址不够用?

© www.soinside.com 2019 - 2024. All rights reserved.