thinkphp限制IP访问次数-已验证测试通过

本文介绍了如何使用ThinkPHP框架实现IP访问限制功能。当同一IP在一分钟内访问超过50次后,系统将在60秒内阻止其继续访问,并在60秒后解除限制。该方法利用Cache::set()函数进行缓存处理,确保了限制的准确性和时效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是:1分钟内某IP访问超过50次后,60s内不可继续访问,60s后可继续访问,重复些动作。 Cache::set(变量名,数组或字符串,缓存时间) 变量名:定义存该数组或字符串的命名 缓存时间:单位为秒,触发条件后,会在这个设置的时间内不能继续访问。

已再次优化,解决了保存时间会动态变化导致不准的情况

可直接利用缓存进行处理。

文件路径:app/thinkphp/start.php

namespace think;

use think\Request;

require __DIR__ . '/base.php';


$request = Request::instance();//实例化请求


$ip = $request->ip();//获取IP


$cacheKey = md5($ip);//并进行md5加密。


$cacheKey_arr = Cache::get($cacheKey);//获取缓存里的对应变量名的数组


// print_r($cacheKey_arr);//测试时使用


$now_time = time();


$key_arr['key'] = $cacheKey;


$count_num = 50;//限制访问的次数

$time_long = 60;//限制为多少秒内访问的次数时间



if(empty($key_arr))//为空时,是没有count与time记录的

{
    $key_arr['count'] = 1;//设置访问次数为1次。
    $key_arr['time'] = $now_time;//这里存放开始的时间
}
else
{
    $count = $cacheKey_arr['count'];//存在数组里的访问次数

   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nengzhen_chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值