我正在尝试在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();
答案 0 :(得分:1)
如果您想要域名,则必须自己对IP进行反向查找。如果你想要MAC地址,你将不得不诉诸魔法。
您打算如何处理这些数据?为什么IP地址不够?