有一个专门记录ip的数据表
怎样尽量减少访问数据库来验证ip是否能够访问网站?谁有更好更高效的算法?请高人示下

解决方案 »

  1.   

    很简单的。ip 可以转换成long型数字。然后直接判断是否相等。封ip段的话就是一个数字的区间而已,巨简单。
      

  2.   

    就查找一下数据库表中的屏蔽IP是否有Request.UserHostAddress呗
    如果要减少访问数据库的话,可以将限制IP集合一次性读取到内存中,当然这个的前提是这个集合不是很大,这样不会占用太大内存,几万条记录内还是可以采用的
      

  3.   

    1楼  的意思是从表中取出ip 然后转换成long,然后在与当前访问的ip(long)进行比较?如果是这样的话那么如果数据表中有几百万条数据,岂不是很慢吗?有没有什么高效的算法?
      

  4.   

    读取xml文件配置的ip如果与其相等就合法反之不合法
      

  5.   

    8*10000000/1024/1024=65M,占用不大啊,如果存在Hashset中,速度应该比直接查数据库快多了
      

  6.   

    1、如果是临时禁止某ip访问:
         将禁止访问的信息放到cookies里 然后设置一个失效日期,判断这个值是否为true或存在2、如果是永久禁止某ip访问:
         a、放数据库里,b、放xml里,c、json中,(反正原则就是找个能存能读不能被客户端更改的地方)