限制接口访问次数
// 使用方法
if(!$this->limitSendCount($request->ip())){
    return resjson(404, '登录频繁,请稍后再试');
}

// 定义方法
private function limitSendCount($ip)
    {
        $redis = new \Redis();
        $redis->connect('127.0.0.1', 6379, 0.2);
        $minKey = 'hq_login_count_'.$ip.'minLimte';
        $dayKey = 'hq_login_count_'.$ip.'dayLimte';
        $value = $redis->get($minKey);
        $dayValue = $redis->get($dayKey);

        if($value == null){
            $redis->set($minKey,1);
            $redis->expire($minKey,60);//过期时间1分钟
            if($dayValue == null){
                $redis->set($dayKey,1);
                $redis->expire($dayKey,3600);//过期时间1小时
            }else{
                $redis->incr($dayKey);//加一次
                if($dayValue > 30){
                    //访问受限
                    $redis->close();
                    return false;
                }
            }
        }else{
            // 1分钟内超过10次,或者1小时超过30次,就禁止访问
            if($value > 10 || $dayValue > 30){
                //访问受限
                $redis->close();
                return false;
            }
            $redis->incr($minKey);//加一次
            $redis->incr($dayKey);//加一次
        }
        $redis->close();
        return true;
    }
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇