前言:由于在CatchAdmin中的系统配置–基础配置—黑名单IP设置在设计之初仅仅作为数据存储,无实际功能,在这里将采用数据库查询方式解决黑名单IP验证问题。欢迎大家留言提供其他方式设置,共同交流
路径: catcher\middlewares
<?php
namespace catcher\middlewares;
//引入配置模型
use catchAdmin\system\model\Config;
class CheckIp
{
// 状态 关闭:false,开启:true
private $status = false;
// ip库
private $StoreIp = [];
/**
* 处理请求
* @param \think\Request $request
* @param \Closure $next
* @return Response
*/
public function handle($request, \Closure $next)
{
// 禁止访问
if($this->status==true){
//获取配置黑名单IP
$config_model=new Config();
$config=$config_model->isExistConfig('other.blacklist',1);
$this->StoreIp= explode(',',$config['value']);
if(in_array($request->ip(),$this->StoreIp)){
exit('禁止访问');
}
}
return $next($request);
}
}
路径: app\middleware.php
// 黑名单IP验证
catcher\middlewares\CheckIp::class,