这里是文章模块栏目内容页
php 正则表达式实现后台域名IP访问白名单的验证

很多场景要在后台录入访问域名的白名单列表,然后判断列表,限制访问的来路。


这里有thinkphp后台的 限制判断逻辑代码

$plat = $this->request->post("plat",0);
        $search = urldecode($this->request->request("keyword",""));
        
        $domainStr = "";
        $res =  Db::query('select group_concat(  domain separator  "|" ) as content from hack_domain where plat=? ',[$plat] ) ;
        if(!empty($res)){
             $domainStr =   str_replace([".","/"], ["\.","\/"], $res[0]['content']) ;
        }
        $result = [];
        try{
            $pattern = "/^((http:\/\/)|(https:\/\/)|(\/\/))?([0-9a-zA-Z\._:\-]*[\.@])?(" . $domainStr . ")(:[0-9]+)?(\.*)?$/";     
            preg_match ($pattern,$search, $result);
        
        } catch (\Exception $e){
            return $this->json([
                'ismatch'=>0,
                'result'=>"表达式出错误了请联系管理员",
            ]);
        }
        if(!empty($result)){
            //匹配正确
            if($search == $result[0]){
                return $this->json([
                    'ismatch'=> 1,
                    'result'=> $result,
                ]);
            }
        } 
            return $this->json([
             'ismatch'=> 0,
             'result'=> $result,
            ]);

好 了,感谢你的阅读,希望对你有所帮助。谢谢。