我正在使用jsp开发一个Web应用程序。我的要求是确定请求是否来自同一台机器。如何指纹设备...我试图获取IP地址但jsp总是返回服务器IP地址。为此,我引用了以下问题。get IP from client是否有任何方法可以使用java脚本或jsp获取IP或Mac地址或客户端PC的唯一标识符.....
答案 0 :(得分:2)
您始终可以设置Cookie。检查请求中的cookie(当它到达Java时)。如果它存在并且它具有您知道的值,那么它就是现有用户。如果它不在那里,它是一个新用户,您应该为该用户设置一个并跟踪您放入的值。
如果所有其他选项都不可行(例如Cookie,IP,用户代理或所有其他选项的组合),那么您可能需要考虑让用户注册并登录。这样,您就可以完全了解谁在实际操作。
答案 1 :(得分:0)
当您的服务器位于像Apache这样的Web服务器后面时,IP请求将不起作用。更好的方法是为第一个请求分配一个id并将其放入cookie中。但是,如果您想在多个浏览器中识别相同的客户端,cookie可能对您没有帮助。你能对你的要求有点解释吗?什么构成了独特的客户?可以接受相同的浏览器/多个浏览器/子网/或其他什么?这有用吗 - How do I uniquely identify computers visiting my web site??
检查https://www.chromium.org/Home/chromium-security/client-identification-mechanisms,它解释了不同的客户端识别机制。 HTML appcache听起来像一个选项(但如果不允许使用cookie,则不确定是否在客户端计算机的磁盘上存储了某些内容)。
答案 2 :(得分:0)
在你的jsp上你可以使用cookies。你可以这样:
<%
Cookie alreadyAccessed = new Cookie("already_accessed", "true");
// Set expiry date after 24 Hrs
alreadyAccessed.setMaxAge(60*60*24);
// Add the cookie in the response header.
response.addCookie( alreadyAccessed );
%>
答案 3 :(得分:0)
您无法获取MAC地址。您可以选择的其他选项是:
远程主机和地址差异,您可以到达Remote Address and Remote Host