trans('error.ForbiddenRobot')], 403); } // 拒绝通过订阅链接域名访问网站,防止网站被探测 if (false !== strpos(sysConfig('subscribe_domain'), $request->getHost()) && !str_contains(sysConfig('subscribe_domain'), sysConfig('website_url'))) { Log::info("识别到通过订阅链接访问,强制跳转至百度(".IP::getClientIp().")"); return redirect('https://www.baidu.com'); } $ip = IP::getClientIP(); $ipLocation = IP::getIPInfo($ip); // 拒绝无IP请求 if (!$ipLocation || empty(array_filter($ipLocation))) { return Response::view('auth.error', ['message' => trans('error.ForbiddenAccess')], 403); } if (!in_array($ipLocation['country'], ['本机地址', '局域网'])) { // 拒绝大陆IP访问 if (sysConfig('is_forbid_china') && in_array($ipLocation['country'], ['China', '中国']) && !in_array($ipLocation['province'], ['香港', '澳门', '台湾', '台湾省'])) { Log::info('识别到大陆IP,拒绝访问:'.$ip); return Response::view('auth.error', ['message' => trans('error.ForbiddenChina')], 403); } // 拒绝非大陆IP访问 if (sysConfig('is_forbid_oversea') && !in_array($ipLocation['country'], ['China', '中国', 'Taiwan', 'Hong Kong', 'Macao'])) { Log::info('识别到海外IP,拒绝访问:'.$ip.' - '.$ipLocation['country']); return Response::view('auth.error', ['message' => trans('error.ForbiddenOversea')], 403); } } return $next($request); } }