情况是这样子的,我想让我的WEB应用可以用同一个用户名同时登录, 但是如果用户在不同的IP上同时登录,(IP不能超过两个),超过两个就不允许登录!请问这个功能可以实现吗?该如何实现了?在线等待?万分谢谢!

解决方案 »

  1.   

    你可以用request.getRemoteAddr()方法获得IP地址,并且在数据库里把IP地址设置为主键,而不是用户名为主键
      

  2.   

    在用户表里加一个logon字段,登录成功就set logon=1;
    注销成功就set logon=0在登录的时候还需要判断where logon=0;
    另外jsp里application也可以用在这里
      

  3.   

    用数据库里logon字段还是可以做到
    第一台登录了set logon=1
    第二台登录成功就set logon=2注销时候判断logon=2那么set logon=1
    判断logon=1那么set logon=0然后登录时候都需要判断条件where logon=1 or logon=0
    也就是说当logon为0和1的时候可以登录,为2时候就表示登录满员了!
    同时如果楼主需要多台限制可以用此类推!
      

  4.   

    这样好像只能限制登录次数,我的要求是只有在超过两台不同IP的电脑上登录就不允许,在同一个IP的电脑上是可以重复登录的。最终目的是让用户可以用两个IP的电脑登录,在这两个IP的电脑上就可以无限制的,不是这两个IP的话就拒绝!
      

  5.   

    那就用javascript获取客户端的IP
    传给后台,并在用户表中添加2个字段ip1,ip2
    记录登录ip用
    在登录时候判断ip1,ip2是否为空,有空就登录,并吧ip写入如果都不为空,并且ip1或ip2有一个等于本机ip,则允许登录
    如果都不为空,并且ip1和ip2都不等于本机ip,则不允许登录
    注销时候也吧ip发送到后台,判断是ip1还是ip2等于本机ip
    等于就set ip1=null或set ip2=null这样勉强可以做到,但自我感觉太好
      

  6.   

    可能是我没有说清楚,如果用户只要不是同时在两个以上的IP上登录,是可以在第三个IP上登录的!
      

  7.   

    用户abc登录前数据库
    id    username    password    ip1            ip2
    1     abc         123用户abc登录第一台后(ip为192.168.0.1)
    id    username    password    ip1            ip2
    1     abc         123         192.168.0.1用户abc登录第二台后(ip为192.168.0.2)
    id    username    password    ip1            ip2
    1     abc         123         192.168.0.1    192.168.0.2这样就不允许abc再次登录第三台机子了(ip为192.168.0.3)
      

  8.   

    我只是想在判断username和password正确后再加一个条件限制的同时登录2台机子数据库(192.168.0.1    192.168.0.2)
    id    username    password    ip1            ip2 
    1     abc         123         192.168.0.1    192.168.0.2 注销第一台后(192.168.0.1)
    id    username    password    ip1            ip2 
    1     abc         123                        192.168.0.2 再次登录第三台(192.168.0.3)
    id    username    password    ip1            ip2 
    1     abc         123         192.168.0.3    192.168.0.2 
      

  9.   

    这就是我感觉不太好的地方,关闭浏览器,而session的有效期又结束了,那么ip一直都存在数据库,因此别的机子就没办法用该用户登录
      

  10.   

    一个登录,另一端被迫下线,改如何实现?
    回复:
     系统访问使用filter,登陆用户后IP或MARK地址,做为LoginUser对象的一个field
    ,将LoginUser对象set到Application中,做为filter的依据,如果有重复的,就从Application中remove掉,
    这样之前登陆的用户再进行操作时,就会跳转到你指定的未通过filter的页面了
      

  11.   

    不要求一个登录,另一端被迫下线,要求是都可以同时登录,但就是不能用两个以上的IP同时登录!各位有高招吗?
    回复:
    用户登陆后,将ip或地址set到application中,登陆时,除了用户名密码
    增加一个从application中遍历已set的ip或地址的方法,有重复的,禁止再次登陆
      

  12.   


    如果是关闭浏览器,那就在session结束是再把相应的IP清空不就可以了嘛!你描述的这个方法我觉得是可行的。