一个PHP实现的应用层的IP管理工具
- PHP 5.6+
- Redis 3.0+
- phpredis 2.2.8+(A PHP extension for Redis)
require '../ipcheck/check.php';
2、根据自己的 Redis 数据库信息,对 ipcheck/library/config 目录下的 sysconfig.php 文件进行数据配置。当然,该文件还可以配置其它一些系统参数,具体可以参考文件注释
3、根据业务的需求,适当配置拦截器的规则链。对应的配置文件是 ipcheck/library/config 目录下的 usrconfig 文件,系统默认关闭拦截器,仅仅使用基本的频率限制规则。
目前系统支持四个规则单元,他们组成了应用于拦截器的规则链,具体如下所示:
// 配置过滤规则(FilterRules) 'RuleA' => array( // 规则A,单位时间内触发基本访问规则(BaseAccessRule)N次,则触发拦截器 'AccessFrequency' => 10, // 单位时间内允许触发系统基本访问规则(BaseAccessRule)的次数,默认'10' 'TriggerTimeUnit' => 'h', // 时间单位,可选:d-天 h-时,不区分大小写,默认'h' ), 'RuleB' => array( // 规则B,单位时间内访问次数超过一定数量则触发拦截器 'AccessFrequency' => 100, // 单位时间内访问次数,默认'100' 'TriggerTimeUnit' => 'h', // 时间单位,可选:d-天 h-时,不区分大小写,默认'h' ), 'RuleC' => array( // 规则C,单位时间内某一受保护的URL访问次数超过一定数量则触发拦截器 'AccessFrequency' => 3, // 单位时间内访问次数,默认'3' 'TriggerTimeUnit' => 'm', // 时间单位,可选:d-天 h-时 m-分,不区分大小写,默认'm' 'URLS' => array( // 受保护的URL,可以配置多个,不必配置主机域名部分 '/example.php', // 拦截器会拦截:http://hostname/example.php、hostname/example.php?a=hello类型的请求 ), ), 'RuleD' => array( // 规则D,非白名单内的IP访问受保护的URL则触发拦截器 'WhiteList' => array( // 白名单,可配置多个IP '127.0.0.1', ), 'URLS' => array( // 受保护的URL,可配置多个,不必配置主机域名部分 '/example.php', // 拦截器会拦截非白名单内的IP访问:http://hostname/example.php、hostname/example.php?a=hello类型的URL ), )配置好系统后,可以登录后台查看和管理系统的访问IP,初始账号密码是 admin/IpcheckAdmin。