问题描述
要求一个用户在同一ip中只能同时登陆一次换ip可以登录没有思路帮帮写这代码吧
解决方案
解决方案二:
记录访问的Ip撒
解决方案三:
你从用户的http请求头就可以拿到IP地址的问题是一个公司的IP都一样一个人访问了别人都不能访问了吗而且如果人家是代理估计也不能访问
解决方案四:
引用2楼zn85600301的回复:
你从用户的http请求头就可以拿到IP地址的问题是一个公司的IP都一样一个人访问了别人都不能访问了吗而且如果人家是代理估计也不能访问
这个是值得考虑的问题
解决方案五:
引用2楼zn85600301的回复:
你从用户的http请求头就可以拿到IP地址的问题是一个公司的IP都一样一个人访问了别人都不能访问了吗而且如果人家是代理估计也不能访问
顶a
解决方案六:
没还学到这么高级的东东,帮顶一下
解决方案七:
代码如下。在需要检查的地方,调用sessionStart_NeedBlock。对于2楼的问题,在这道题目之外。看起来没有解法。publicstaticHashMapCURRENT_USER_IP=newHashMap();publicbooleansessionStart_NeedBlock(HttpServletRequestrequest){Stringip=request.getRemoteAddr();if(CURRENT_USER_IP.containsValue(ip)){//blockuserreturntrue;}else{CURRENT_USER_IP.put(request.getSession().getId(),ip);returnfalse;}}publicvoidsessionEnd(HttpSessionsession){CURRENT_USER_IP.remove(session.getId());}
创建MySessionListener,放到web。xml中。publicclassMySessionListenerimplementsHttpSessionListener{publicvoidsessionDestroyed(HttpSessionEventsessEvent){sessionEnd(sessEvent.getSession());}}
解决方案八:
建张表存用户id和登陆过的ip验证用户是验证用户名和密码同时查看id,ip表是否有数据,没有则添加ip数据允许登陆有则返回不允许登陆
解决方案九:
可以试试登陆流水日志表账号是唯一主键,每次登陆查询日志是否有对应的账号,如果有则拒绝登陆。
解决方案十:
引用8楼gudankangti1987的回复:
可以试试登陆流水日志表账号是唯一主键,每次登陆查询日志是否有对应的账号,如果有则拒绝登陆。
账号是不行的,可以选择任何ip登陆账号。这个地方应该是查询有无对应ip地址。
解决方案十一:
我也有这个问题,计划设一个服务器监听,ip相同就返回
解决方案十二:
局域网只一外部IP你要怎么处理
解决方案十三:
用户登陆时,把IP取出来,添加到一个集合里,把这个集合存到服务器上,也就是ServletContext内,然后再有用户登陆时,判断一下这个集合是否包含这个IP,剩下的,你懂的
解决方案十四:
解决代理IP问题publicStringgetRemortIP(HttpServletRequestrequest){if(request.getHeader("x-forwarded-for")==null){returnrequest.getRemoteAddr();}returnrequest.getHeader("x-forwarded-for");}
如果request.getHeader("x-forwarded-for")==null则直接返回IP.如果不为null,则说明客户端是用代理IP.通过request.getHeader("x-forwarded-for");直接获取客户端的IP
解决方案十五:
该回复于2010-12-09 16:07:10被版主删除