全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 5344|回复: 19
打印 上一主题 下一主题

php怎么限制某个ip或ip段过多的请求

[复制链接]
1#
发表于 2015-3-10 20:00:06 | 显示全部楼层
可以在访问的时候设置session,用session来做可以。代码网上有。
2#
发表于 2015-3-10 20:40:43 | 显示全部楼层
muyang 发表于 2015-3-10 20:12
大牛,搜不出来啊。。

晚点我回你把,家里电脑有这个东西。不过是以前PHP 5.2的
3#
发表于 2015-3-10 22:09:20 | 显示全部楼层
muyang 发表于 2015-3-10 21:24
谢大牛,谢楼上各位兄弟的解答
  1. <?php
  2. /**
  3. * @author 天涯
  4. * [email protected]
  5. */
  6. //代理IP直接退出
  7. empty($_SERVER['HTTP_VIA']) or exit('Access Denied');
  8. //防止快速刷新
  9. session_start();
  10. $seconds = '3'; //时间段[秒]
  11. $refresh = '5'; //刷新次数
  12. //设置监控变量
  13. $cur_time = time();
  14. if(isset($_SESSION['last_time'])){
  15.         $_SESSION['refresh_times'] += 1;
  16. }else{
  17.         $_SESSION['refresh_times'] = 1;
  18.         $_SESSION['last_time'] = $cur_time;
  19. }
  20. //处理监控结果
  21. if($cur_time - $_SESSION['last_time'] < $seconds){
  22.         if($_SESSION['refresh_times'] >= $refresh){
  23.                 //跳转至攻击者服务器地址
  24.                 header(sprintf('Location:%s', 'http://www.baidu.com'));
  25.                 exit('Access Denied');
  26.         }
  27. }else{
  28.         $_SESSION['refresh_times'] = 0;
  29.         $_SESSION['last_time'] = $cur_time;
  30. }
  31. ?>
复制代码

评分

参与人数 1威望 +25 收起 理由
cnx + 25 很给力!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-6-13 13:06 , Processed in 0.057824 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表