请求支持如何限制页面对话人数,给分100,在线等待 那不行的,你控制访问人数1000,他开了900个窗口,那不乱套了,怪不得我的mysql出现too many connection,估计就是这个缘故了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 想想这好像是apache服务器设置的问题. 这样啊:某人访问,即将该用户ip保存起来,存入文件(举例,一行一个IP);111.111.111.111222.222.222.222...在该程序打开时,将上面的文件数据按\n读入数组$num_reader,并做判断:if (count($num_reader) > 10) { die("浏览该页的人数太多,请稍后访问!");} 每次都要读一下这个文件,一个web有多少个读取数据库的php文件啊,我每个都要加,晕.:( 这个过程应该是整个页面流量的过程,一个site如果每天有10000个点击次数的话,那就..... 我现在是有个攻击者一个小的javascript就可以攻击了.他开窗口,我现在的解决是知道了他的ip,然后让他die()万一他换个ip攻击?我的服务器就奇慢无比了:( 如果是对整站的控制,非常简单啊所有页面都include一个程序,上面的代码放里面就可以了 我觉得这个存储ip的文件应该有个时效问题,要不就乱套了,比如1分钟内,某人连续开窗口5个,就不行了.我对php不熟悉,哪个大哥帮俺写写代码. DOS攻击现在没什么好的解决办法……像你说的,一般是防止刷新(例如5秒内禁止刷新) 流程思路整理:一个匿名者访问你的网站,txt文档记录一分钟之内匿名者浏览的ip地址.if 存在 该ip数目大于5.则die();哪个大哥帮我实现一下代码吧,多谢啦 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); 以上是简单的程序,没涉及一分钟内删除的问题。其实,这样不是最佳处理方式。我建议两个方法:一,是用数据+SESSION,大致类似现在论坛在线统计的原理;二,给每个用户建个在线信息文件,其中记录了该用户的IP、登录时间、最后活动时间。和上面的方法比较类似,不过更灵活一些。 如果有人写个javascript,打开论坛的首页会怎样?我现在是奇慢无比. $ip = getenv ("REMOTE_ADDR");if (eregi("111.111.",$ip)||eregi("222.222.",$ip)) {die();}我现在是这样,你肯看如何?嘿嘿 if (eregi("111\.111\.",$ip)||eregi("222\.222\.",$ip)) {你的正则表达式写错了前面关于要修改多个php文件问题的一种解决方法是:指定php.ini中auto_prepend_file = xxx.php //进入php时自动执行的程序 auto_prepend_file = xxx.php //进入php时自动执行的程序这个路径应该怎么写?绝对的还是相对的? 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 http协议不能控制用户开多少ie窗口的吧????呵呵,又不是远程控制/监控。get一个页面之后就释放连接了。只能控制他的刷新频率数据库+SESSION是比较好地解决办法! urlrewrite 写法,不常用,请教 计算字符串公式的值 php分页导航栏跳转问题 关于$_FILES['file']['tmp_name'] 求助啊!!!配PHP环境时,安装jpeg支持! 用PHP 生成xml 的问题? phpmyadmin在本机狂暴刷新,Apache/2.0.54 (Win32) PHP/4.4.0RC1 我快疯啦 PHP长久没解决的问题,有人有办法实现吗? 关于复选框的提交 请大家看看这个正则怎么提取 关于phpnuke的问题 请给个session验证用户名密码的例子
某人访问,即将该用户ip保存起来,存入文件(举例,一行一个IP);
111.111.111.111
222.222.222.222
...
在该程序打开时,将上面的文件数据按\n读入数组$num_reader,并做判断:
if (count($num_reader) > 10) {
die("浏览该页的人数太多,请稍后访问!");
}
他开窗口,
我现在的解决是知道了他的ip,然后让他die()
万一他换个ip攻击?我的服务器就奇慢无比了
:(
所有页面都include一个程序,上面的代码放里面就可以了
比如1分钟内,某人连续开窗口5个,就不行了.
我对php不熟悉,哪个大哥帮俺写写代码.
像你说的,一般是防止刷新(例如5秒内禁止刷新)
一个匿名者访问你的网站,txt文档记录一分钟之内匿名者浏览的ip地址.
if 存在 该ip数目大于5.
则die();
哪个大哥帮我实现一下代码吧,多谢啦
$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);
我建议两个方法:
一,是用数据+SESSION,大致类似现在论坛在线统计的原理;
二,给每个用户建个在线信息文件,其中记录了该用户的IP、登录时间、最后活动时间。和上面的方法比较类似,不过更灵活一些。
我现在是奇慢无比.
if (eregi("111.111.",$ip)||eregi("222.222.",$ip)) {
die();
}我现在是这样,你肯看如何?嘿嘿
你的正则表达式写错了前面关于要修改多个php文件问题的一种解决方法是:
指定php.ini中
auto_prepend_file = xxx.php //进入php时自动执行的程序
随便,在include_path范围里或指定绝对路径。
若不指定路径,则每个存放php程序的目录下都可以有一个xxx.php。可以用来做特定的工作。比如判断访问权限、加载公共文档(程序里就无须用include了)、变量转换(用extract函数从$_POST、$_GET生成变量,以兼容4.0.x程序)...等等另外还有一个 auto_append_file 用来指定php程序执行完后执行的程序php执行过程:
auto_prepend_file
应用程序
auto_append_file
只能控制他的刷新频率
数据库+SESSION是比较好地解决办法!