PHP结合Redis来限制用户或者IP某个时间段内访问的次数
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); //获取客户端真实ip地址 function get_real_ip(){ static $realip; if(isset($_SERVER)){ if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ $realip=$_SERVER['HTTP_X_FORWARDED_FOR']; }else if(isset($_SERVER['HTTP_CLIENT_IP'])){ $realip=$_SERVER['HTTP_CLIENT_IP']; }else{ $realip=$_SERVER['REMOTE_ADDR']; } }else{ if(getenv('HTTP_X_FORWARDED_FOR')){ $realip=getenv('HTTP_X_FORWARDED_FOR'); }else if(getenv('HTTP_CLIENT_IP')){ $realip=getenv('HTTP_CLIENT_IP'); }else{ $realip=getenv('REMOTE_ADDR'); } } return $realip; } //这个key记录该ip的访问次数 也可改成用户id $key = get_client_ip(); //该Key记录访问的次数,目前是以IP为例,也可以把用户id作为key,如userid_123456//限制次数为3次。 $limit = 3; $check = $redis->exists($key); if($check){ $redis->incr($key); $count = $redis->get($key); if($count > 3){ exit('已经超出了限制次数'); } }else{ $redis->incr($key); //限制时间为60秒 $redis->expire($key,60); } $count = $redis->get($key); echo '第 '.$count.' 次请求';
转载于:https://www.cnblogs.com/wt645631686/p/6868845.html
PHP结合Redis来限制用户或者IP某个时间段内访问的次数相关推荐
- nginx中限制IP同一时间段的访问次数
nginx中限制IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DD ...
- SpringBoot+redis实现用户或者ip恶意单位时间内访问
中心思想就是把该用户首次访问的时间和访问个数放到reds中用户每访问一次加1,先对比访问的次数是否超出,然后对比访问的时间是超出所设置的时间1.实现一个过滤器接口 package com.exam.i ...
- php限制ip访问次数 并发_[转]nginx限制某个IP同一时间段的访问次数
如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见 ...
- nginx限制某个IP同一时间段的访问次数
参考:http://www.nginx.cn/446.html
- openresty开发系列38--通过Lua+Redis 实现动态封禁IP
openresty开发系列38--通过Lua+Redis 实现动态封禁IP 一)需求背景为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝 ...
- Openresty通过Lua+Redis 实现动态封禁IP
需求背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单.对于黑名单之内的 IP ,拒绝提供服务.并且可以设置失效 环境准备 linux version:centos ...
- 拼多多面试:如何用 Redis 统计独立用户访问量?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:沙茶敏碎碎念 来源:https://url.cn/5tQPE ...
- 拼多多面试|如何用 Redis 统计独立用户访问量?
众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer 当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过1 ...
- k8s 集群 Ingress Nginx传递用户真实IP问题
业务应用经常有需要用到用户真实ip的场景,比如:异地登录的风险预警.访问用户分布统计等功能等.当有这种需求的时候,在业务上容器过程中,如果用到ingress就要注意配置了.通常,用户ip的传递依靠的是 ...
最新文章
- Glide 源码分析与面试提问
- [翻译] JTCalendar
- fastjson json串转list
- 全国计算机等级考试二级教程——公共基础知识(2013年版)pdf,全国计算机等级考试2级教程:公共基础知识(2013年版)...
- java 删除二进制内容_二进制搜索树节点删除
- 认识Javascript数组
- Java添加多行数据到mysql中_Java:使用PreparedStatement将多行插入到MySQL中
- vmware虚拟机中常见的3种网络模式
- 添加用户到sudoers
- libevent源码深度剖析-张亮
- csv文件导入 navicat会少了很多记录_跟小白学Python数据分析——数据导入1
- 自动生成数据库字典工具
- 机器学习----高斯过程回归
- vba打开html文件,VBA调用浏览器打开指定网页的几种方法
- 小米云测平台远程真机调试使用教程
- 故障分析 | MySQL 8.0 解决连接满问题
- oracle锁表语句执行提示无法终止当前对话_ORACLE LOCK TABLE 无法锁定表?
- Java Web 实现下载文件
- 二进制的应用——枚举子集
- Flink Window Function
热门文章
- 使用navigator对象,输出当前浏览器的信息
- STM32的优先级NVIC_PriorityGroupConfig的理解及其使用(转)
- VC++即时通讯+视频会议源码
- 京东探索研究院 34 篇论文入选 CVPR 2022
- 神经网络其实并不需要那么深!普林斯顿大学英特尔提出ParNet,12层的网络就能达到80%以上的准确率!...
- ECCV 2020 论文大盘点-人员重识别(ReID)篇
- 计算机东大计算机三在线作业,东大16秋学期《计算机基础》在线作业3
- 重磅汇总!2015-2019学硕国家线走势情况!
- rust地基蓝图在哪找_Rust错误处理的思考
- 基于无监督深度学习的单目视觉的深度和自身运动轨迹估计的深度神经模型