php redis ip查找,PHP实现redis限制单ip、单用户的访问次数功能示例
本文实例讲述了PHP实现redis限制单ip、单用户的访问次数功能。分享给大家供大家参考,具体如下:
有时候我们需要限制一个api或页面访问的频率,例如单ip或单用户一分钟之内只能访问多少次
类似于这样的需求很容易用Redis来实现
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth("php001");
//这个key记录该ip的访问次数 也可改成用户id
//$key = 'userid_11100';
$key=get_real_ip();
//限制次数为5
$limit = 5;
$check = $redis->exists($key);
if($check){
$redis->incr($key);
$count = $redis->get($key);
if($count > 5){
exit('请求太频繁,请稍后再试!');
}
}else{
$redis->incr($key);
//限制时间为60秒
$redis->expire($key,60);
}
$count = $redis->get($key);
echo '第 '.$count.' 次请求';
//获取客户端真实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;
}
?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+redis数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
php redis ip查找,PHP实现redis限制单ip、单用户的访问次数功能示例相关推荐
- php限制ip访问次数 并发_PHP实现redis限制单ip、单用户的访问次数功能示例
本文实例讲述了PHP实现redis限制单ip.单用户的访问次数功能.分享给大家供大家参考,具体如下: 有时候我们需要限制一个api或页面访问的频率,例如单ip或单用户一分钟之内只能访问多少次 类似于这 ...
- PHP实现redis限制单ip、单用户的访问次数功能
本文实例讲述了PHP实现redis限制单ip.单用户的访问次数功能.分享给大家供大家参考,具体如下: 有时候我们需要限制一个api或页面访问的频率,例如单ip或单用户一分钟之内只能访问多少次 类似于这 ...
- php实现多条件查找分页,Yii2.0框架实现带分页的多条件搜索功能示例
本文实例讲述了Yii2.0框架实现带分页的多条件搜索功能.分享给大家供大家参考,具体如下: 方法一 在控制器中 public function actionShow(){ $where['title' ...
- 【Redis】新浪微博与微信Redis架构实战 - 笔记
1.Redis核心数据结构精讲 使用redis-cli进入Redis交互 如果出现:(error) NOAUTH Authentication required.,使用auth 密码登录即可 在Spr ...
- php限制接口访问次数_令牌桶限流思路分享(PHP+Redis实现机制)
一 .场景描述 在开发接口服务器的过程中,为了防止客户端对于接口的滥用,保护服务器的资源, 通常来说我们会对于服务器上的各种接口进行调用次数的限制.比如对于某个 用户,他在一个时间段(interval ...
- java 统计阅读量_使用redis实现【统计文章阅读量】及【最热文章】功能
1.视图函数 # 不需要登录装饰器,匿名用户也可访问 def article_detail(request, id, slug): # print(slug,id) article = get_obj ...
- redis用于php购物,PHP+redis实现的购物车单例类示例
本文实例讲述了PHP+redis实现的购物车单例类.分享给大家供大家参考,具体如下: redis=new Redis(); $this->redis->connect('127.0.0.1 ...
- php redis ip查找,php+redis实现ip白名单并提供可配置ip页面
ip白名单或者黑名单,目的是为了达到一种受限访问,希望在名单内用户可以访问,就把名单叫白名单:希望在名单内用户拒绝访问,就是黑名单.无论我们希望使用哪种名单方式,实现方式都一样. 在nginx下我们通 ...
- windows Redis绑定ip无效,Redis设置密码无效,Windows Redis 配置不生效, Windows Redis requirepass不生效...
windows Redis绑定ip无效,Redis设置密码无效,Windows Redis 配置不生效, Windows Redis requirepass不生效 >>>>&g ...
最新文章
- 探讨UnsupportedOperationException的原因及解决方案
- SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析
- 《数字视频和高清:算法和接口》一第1章 光 栅 图 像
- 再迎利好,“预共识”或能助力BCH“零确认”安全可靠
- 多窗体、窗体传值、打开唯一窗体操作
- ITK:将内核应用于图像中的每个像素
- shiro学习(21):动态添加验证规则1
- Codeforces Round #224 (Div. 2): C. Arithmetic Progression(模拟)
- shell 之while两种写法
- WIFI中的关键词,频率,频段,频宽,频带...你晕了没??.
- C++ 中的线程库和 lamber 表达式
- SpringBoot - Lombok的使用
- IT架构师_隽语集(Design Thinking _0201)
- 【问题解决】springboot启动后一小会就自动停止,提示Process finished with exit code 0
- 一期Go群问答-并发控制-数据竞争-错误与异常
- Java成员方法与静态方法的详解
- Python爬虫 - 获取网页编码
- 理解Linux中的进程状态
- 苹果手机软件升级密码_苹果app应用制作多少钱_广腾(深圳)互联网科技有限公司...
- python多媒体应用:使用python和win32gui一步步教你按需截图和图片文字识别
热门文章
- Vscode之运行更新出错
- Vlc之vs2010版本的配置
- 人脸方向学习(九):Face Detection-MTCNN解读
- 深度学习掩膜_学习资源 | NOAA连接AI与环境科学(九)—海洋环境视频和图像分析教程...
- java 常用的五大包
- 小程序二维码需要发布正式版后才能获取到_IOS14.3正式版发布时间12月15日:苹果ios14.3正式版内容一览[多图]-游戏产业...
- java json data_java中json数据格式的处理
- 根据用指定的月份,打印该月所属的季节(if else)3,4,5 春季 6,7,8 为夏季 9,10,11 秋季 12,1,2为冬季(switch 与 if(){}else{})两种写法
- c语言libjpeg处理图像,解决使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的有关问题...
- mysql能管理多大的硬盘,Mysql----查看数据库,表占用磁盘大小