
Phpcms 本身没有内置完整的 IP 封禁管理界面,但可以通过代码方式实现 IP 限制和访问控制。以下是几种常用的 IP 控制方法:
1. 通过配置文件添加IP黑名单
可以在站点入口或公共配置文件中加入 IP 黑名单判断逻辑。
打开 /caches/configs/system.php 或创建一个公共验证文件,在其中添加以下代码:
$forbidden_ips = array(‘192.168.1.100’, ‘10.0.0.5’, ‘123.45.67.*’); // 支持通配符 * 匹配段$client_ip = $_SERVER[‘REMOTE_ADDR’];<p>foreach ($forbidden_ips as $ip) {if (fnmatch($ip, $client_ip)) {die(‘您的IP地址已被禁止访问!’);}}</p>
将此代码插入到系统初始化前(如 index.php 或 common.inc.php 中),可全局拦截非法 IP。
立即学习“PHP免费学习笔记(深入)”;
2. 利用 .htaccess(Apache环境)限制IP
适用于 Apache 服务器,直接通过 Web 服务器层拦截更高效。
在网站根目录的 .htaccess 文件中添加:
Order Allow,DenyAllow from allDeny from 123.45.67.89Deny from 10.0.0
支持单个 IP 或 IP 段(如 10.0.0 表示屏蔽所有以 10.0.0 开头的 IP)。
3. Nginx 配置 IP 封禁
如果使用 Nginx,可在站点配置中添加:
if ($remote_addr = "123.45.67.89") { return 403;}# 或屏蔽整个段if ($remote_addr ~ "^10\.0\.0\.") { return 403;}
修改后重启 Nginx 生效。
4. 后台手动记录并封禁恶意IP(进阶)
可结合日志记录功能,将频繁请求或异常登录的 IP 存入数据库,再通过中间件判断。
例如:在用户登录或访问关键页面时加入检测逻辑:
$blocked_ips = get_blocked_ips_from_db(); // 从数据库读取被封IPif (in_array($_SERVER[‘REMOTE_ADDR’], $blocked_ips)) { header(‘HTTP/1.1 403 Forbidden’); exit(‘Access denied.’);}
基本上就这些常用方法。优先推荐使用服务器层(.htaccess 或 Nginx)进行 IP 控制,效率更高,减轻 PHP 负担。若需动态管理,可开发简单模块实现数据库驱动的 IP 黑名单功能。

评论(0)