那不行的,你控制访问人数1000,他开了900个窗口,那不乱套了,怪不得我的mysql出现too many connection,估计就是这个缘故了

解决方案 »

  1.   

    想想这好像是apache服务器设置的问题.
      

  2.   

    这样啊:
    某人访问,即将该用户ip保存起来,存入文件(举例,一行一个IP);
    111.111.111.111
    222.222.222.222
    ...
    在该程序打开时,将上面的文件数据按\n读入数组$num_reader,并做判断:
    if (count($num_reader) > 10) {
        die("浏览该页的人数太多,请稍后访问!");
    }
      

  3.   

    每次都要读一下这个文件,一个web有多少个读取数据库的php文件啊,我每个都要加,晕.:(
      

  4.   

    这个过程应该是整个页面流量的过程,一个site如果每天有10000个点击次数的话,那就.....
      

  5.   

    我现在是有个攻击者一个小的javascript就可以攻击了.
    他开窗口,
    我现在的解决是知道了他的ip,然后让他die()
    万一他换个ip攻击?我的服务器就奇慢无比了
    :(
      

  6.   

    如果是对整站的控制,非常简单啊
    所有页面都include一个程序,上面的代码放里面就可以了
      

  7.   

    我觉得这个存储ip的文件应该有个时效问题,要不就乱套了,
    比如1分钟内,某人连续开窗口5个,就不行了.
    我对php不熟悉,哪个大哥帮俺写写代码.
      

  8.   

    DOS攻击现在没什么好的解决办法……
    像你说的,一般是防止刷新(例如5秒内禁止刷新)
      

  9.   

    流程思路整理:
    一个匿名者访问你的网站,txt文档记录一分钟之内匿名者浏览的ip地址.
    if 存在 该ip数目大于5.
    则die();
    哪个大哥帮我实现一下代码吧,多谢啦
      

  10.   

    if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');} elseif(getenv('HTTP_X_FORWARDED_FOR')) { $onlineip = getenv('HTTP_X_FORWARDED_FOR');} elseif(getenv('REMOTE_ADDR')) { $onlineip = getenv('REMOTE_ADDR');} else { $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];}$fp = fopen("record.txt", "w");
    $ips = fread($fp, filesize ("record.txt"));
    $arr_ips = explode("\n", $ips);
    if (count($arr_ips) > 10) {
        fclose($fp);
        die("浏览该页的人数太多,请稍后访问!");
    }
    $ips .= "$onlineip\n";
    fwrite($fp, $ips);
    fclose($fp);
      

  11.   

    以上是简单的程序,没涉及一分钟内删除的问题。其实,这样不是最佳处理方式。
    我建议两个方法:
    一,是用数据+SESSION,大致类似现在论坛在线统计的原理;
    二,给每个用户建个在线信息文件,其中记录了该用户的IP、登录时间、最后活动时间。和上面的方法比较类似,不过更灵活一些。
      

  12.   

    如果有人写个javascript,打开论坛的首页会怎样?
    我现在是奇慢无比.
      

  13.   

    $ip = getenv ("REMOTE_ADDR");
    if (eregi("111.111.",$ip)||eregi("222.222.",$ip)) {
    die();
    }我现在是这样,你肯看如何?嘿嘿
      

  14.   

    if (eregi("111\.111\.",$ip)||eregi("222\.222\.",$ip)) {
    你的正则表达式写错了前面关于要修改多个php文件问题的一种解决方法是:
    指定php.ini中
    auto_prepend_file = xxx.php //进入php时自动执行的程序
      

  15.   

    auto_prepend_file = xxx.php //进入php时自动执行的程序这个路径应该怎么写?绝对的还是相对的?
      

  16.   

    auto_prepend_file = xxx.php
    随便,在include_path范围里或指定绝对路径。
    若不指定路径,则每个存放php程序的目录下都可以有一个xxx.php。可以用来做特定的工作。比如判断访问权限、加载公共文档(程序里就无须用include了)、变量转换(用extract函数从$_POST、$_GET生成变量,以兼容4.0.x程序)...等等另外还有一个 auto_append_file 用来指定php程序执行完后执行的程序php执行过程:
      auto_prepend_file 
        应用程序
      auto_append_file
      

  17.   

    http协议不能控制用户开多少ie窗口的吧????呵呵,又不是远程控制/监控。get一个页面之后就释放连接了。
    只能控制他的刷新频率
    数据库+SESSION是比较好地解决办法!