我在服务器端使用JSP并想要验证,用户不能从两个不同的IP地址登录。进行此验证的方法是什么?
有些人说,由于涉及一些代理,客户端IP地址可能无法从服务器端获取。然后google和facebook如何做到这一点?这在生产环境中是否可靠?请解释。谢谢!
答案 0 :(得分:3)
答案 1 :(得分:2)
好吧,获取IP地址就像使用ServletRequest#getRemoteAddr()
一样简单但正如您已经注意到的那样,没有办法可靠地实现这一点 - 如果客户端使用代理,则连接似乎来自该IP地址。我不相信Facebook或Google也可以解决这个问题 - 这就是为什么你可以通过具有美国IP地址的代理/ ssh隧道登录来访问仅限美国的功能(例如,Gmail中的Google Voice)。
如果您只想阻止用户同时从两个不同的IP地址登录,您需要做的就是跟踪当前会话(如果存在)的IP地址来源和
我不确定在不同时间阻止从不同IP地址登录可能会有什么价值,因为这种情况很可能发生在四处旅行或从网络移动到网络的用户身上。