如何确保用户无法在同一台计算机上执行某些操作

用户11117947

我有一个使用 Java、JSP 的 Web 应用程序。我想确保用户只能在他/她的同一台设备上回答同一个问题一次。我尝试检查用户计算机上的 IP 地址。一旦使用了设备 IP 地址,用户将无法在设备上再次回答相同的问题。

我尝试将 IP 地址捕获为

String ip =  request.getRemoteAddr();
System.out.println("IP Address: "+ip);

但是打印出来的ip如下。IP地址:0:0:0:0:0:0:0:1

请让我如何正确捕获用户的设备IP地址?或者任何更好的方法来确保同一设备不能被用于同一问题两次或更多次。

提前致谢

更新 我将以下代码添加到jsp页面试图捕获客户的 IP 地址,但我仍然不断获取生产服务器的 IP 地址(我将应用程序上传到生产站点)。你能告诉我为什么吗?我应该得到客户的设备 IP 地址。

提前致谢!

String ip = "";
ip = request.getHeader("X-Forwarded-For");


if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {      
   ip = request.getHeader("Proxy-Client-IP");      
}      
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {      
   ip = request.getHeader("WL-Proxy-Client-IP");      
}      
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {      
   ip = request.getRemoteAddr();      
}    
System.out.println("ip: " +ip);  

您将获得环回 IPv6 接口,因为您通过localhost. 尝试打开http://<your local IP>:<your AS port>

无论如何,要获取远程用户 IP,首先要检查X-Forwarded-For标头。如果用户通过代理服务器访问您的网站,remoteAddr则代理地址将是代理地址,在此标头中,您可能拥有远程用户地址。

request.getHeader("X-Forwarded-For")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

需要确保用户帐户一次只能在一台计算机上登录的建议

某些用户无法在某些计算机上使用Internet Explorer 11浏览,但是同一台计算机上的其他用户可以

无法对一台计算机上的.local计算机执行ping操作

如何在同一台计算机上克隆用户配置文件?

我如何知道在同一台远程计算机上登录的其他用户的IP地址?

如何在同一台计算机上同时运行多个用户X会话?

ExcelDna无法在一台计算机上运行

如何在同一台计算机上运行2个(或更多)Wildfly实例?

如何在同一台计算机上配置多个ASPNETCORE_ENVIRONMENT?

如何在同一台计算机上运行多个Graph Engine实例?

如何在同一台计算机上安装Windows和Ubuntu?

如何在同一台计算机上使用多个版本的Laravel?

一台计算机上如何有2个git用户?

在同一台计算机上为另一个用户注册用户的证书

无法在同一台计算机上复制文件-错误0x8007045D:由于I / O设备错误而无法执行该请求

如果用户从Servlet的同一台计算机上的一个浏览器注销,该如何注销用户

在同一台计算机上访问另一个用户的数据(GUI)

是否可以在同一台计算机上的2个不同的操作系统之间共享文件?

通常最好在要执行的同一台计算机上进行编译吗?

Ubuntu:通过ssh将用户帐户复制到同一台计算机上吗?

验证同一台计算机上其他用户的SSH和GPG密钥

同一程序无法完全使用另一台计算机上的CPU资源

2台不同版本的ActiveMQ Servers在同一台计算机上

如何在 windows 中使用两个用户在同一台计算机上使用两个 GitHub 帐户?

无法从同一台计算机上的Docker容器连接到Azure存储模拟器

如何告诉Octopus Deploy等待同一台计算机上的另一部署完成?

Wix自定义操作无法在另一台计算机上工作

在同一台计算机上的帐户之间切换时,如何保持vim环境?

Ansible中,如何在同一台远程计算机上同步2个文件夹?