PHP实现redis限制单ip、单用户的访问次数功能
日期:2022-03-15
PHP实现redis限制单ip、单用户的访问次数功能参考代码如下
<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth("ecshopcx"); //这个key记录该ip的访问次数 也可改成用户id //$key = 'userid_12345'; $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']; } elseif (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'); } elseif (getenv('HTTP_CLIENT_IP')) { $realip = getenv('HTTP_CLIENT_IP'); } else { $realip = getenv('REMOTE_ADDR'); } } return $realip; }
本文原创地址:https://www.ecshop.cx/article-915.html
版权所有 © 转载时必须以链接形式注明出处!
觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。
暂无评论,来发表一个吧