全站插件24小时自动发货

PHP实现redis限制单ip、单用户的访问次数功能

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
版权所有 © 转载时必须以链接形式注明出处!

觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。

文章评论

暂无评论,来发表一个吧

发表 取消
充值有惊喜 ECSHOP插件网微信客服edait_cn