这段代码主要实现了一个屏蔽访客的功能,用于在网站管理后台中限制一些不需要访问的访客。 具体来说,这段代码通过检查用户的IP地址和User-Agent头部信息,判断是否需要屏蔽访客。如果需要屏蔽访客,则会加载错误页面,并退出脚本执行。同时,该代码还支持白名单功能,可以将一些特定的IP地址段添加到白名单中,从而允许这些IP地址访问网站。 此外,该代码还支持检测爬虫和搜索引擎等特殊访客,并根据情况决定是否屏蔽这些访客 总的来说,这段代码的作用是保护网站安全,控制访客数量和质量,从而防止不必要的恶意攻击和非法访问。 - <?php
-
- // 配置文件路径
- $configPath = 'admin/config.php';
-
- // 获取用户IP地址和User-Agent头部信息
- $userIP = getuserIP(); // 获取用户IP地址
- $userAgent = $_SERVER['HTTP_USER_AGENT']; // 获取User-Agent头部信息
-
- // 加载配置文件
- if (file_exists($configPath)) {
- include_once $configPath; // 如果配置文件存在,则加载配置文件
- } else {
- exit('配置文件不存在'); // 配置文件不存在,退出脚本执行,并输出错误消息
- }
-
- // 判断是否需要屏蔽访客
- if ($blockVisitors && !isWhiteListed($userIP) && shouldBlockVisitor($userAgent)) {
- blockVisitor(); // 屏蔽访客,并返回错误页面
- exit(); // 退出脚本执行
- }
-
- // 判断是否需要屏蔽特定IP段
- if ($blockIPRange && !isWhiteListed($userIP) && shouldBlockVisitor($userAgent)) {
- blockVisitor(); // 屏蔽访客,并返回错误页面
- exit(); // 退出脚本执行
- }
-
- // 未开启屏蔽访客功能
- // echo "未开启屏蔽访客功能";
-
- /**
- * 判断是否需要屏蔽访客
- *
- * @param string $userAgent User-Agent头部信息
- * @return bool 是否需要屏蔽访客
- */
- function shouldBlockVisitor($userAgent)
- {
- if ($detectSpiders) {
- $spiders = [
- 'Baiduspider',
- '360Spider',
- 'Sogou',
- 'bingbot',
- 'Bytespider',
- 'YisouSpider'
- ];
-
- // 检查User-Agent是否包含爬虫关键词
- foreach ($spiders as $spider) {
- if (stripos($userAgent, $spider) !== false) {
- return false; // 如果是爬虫,则不需要屏蔽访客
- }
- }
- }
-
- // 检查是否是搜索引擎来路的访客
- if (isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'baidu.com') !== false) {
- return false; // 如果是搜索引擎来路的访客,则不需要屏蔽访客
- }
-
- return true; // 需要屏蔽访客
- }
-
- /**
- * 判断IP地址是否在白名单中
- *
- * @param string $userIP 用户IP地址
- * @return bool 是否在白名单中
- */
- function isWhiteListed($userIP)
- {
- $whiteList = ['220.181.108']; // 示例IP地址段
-
- // 检查用户IP地址是否在白名单中
- foreach ($whiteList as $ipSegment) {
- if (strpos($userIP, $ipSegment) === 0) {
- return true; // 在白名单中,不需要屏蔽访客
- }
- }
-
- return false; // 不在白名单中,需要屏蔽访客
- }
-
- /**
- * 屏蔽访客并返回错误页面
- */
- function blockVisitor()
- {
- include 'fk.php'; // 加载错误页面
- }
复制代码 以上代码转载至:https://www.niuniubbs.com/thread-5089-1-1.html
|