Block China IP Plugin
屏蔽国内IP访问插件,支持在线下载和更新IP库。
功能特性
- ✅ 根据IP地址屏蔽来自中国大陆的访问
- ✅ 支持CIDR格式的IP段列表
- ✅ 后台在线下载和更新IP库
- ✅ 检测到中国IP时自动显示系统维护页面
- ✅ 轻量级IP库,查询速度快
- ✅ 支持测试模式,方便开发调试
安装
- 将插件目录放置到
plugins/BlockChinaIp/ - 在后台插件管理中启用插件
- 访问插件设置页面,下载IP库
配置
IP库设置
- IP库下载地址: IP库文件的URL地址,支持CIDR格式的IP段列表
- 默认IP库:
https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt
状态开关
系统会自动添加"状态"开关,用于启用或禁用IP屏蔽功能。
IP库格式
IP库文件应为CIDR格式的IP段列表,每行一个IP段,例如:
1.0.1.0/24
1.0.2.0/23
1.0.8.0/21
支持以 # 开头的注释行,空行会被自动忽略。
使用方法
- 访问后台插件管理页面
- 找到"屏蔽国内IP"插件,点击"设置"
- 点击"下载IP库"按钮,下载最新的IP库
- 开启"状态"开关,启用IP屏蔽功能
- 保存设置
工作原理
- 插件通过中间件拦截所有前台访问请求
- 获取客户端真实IP地址(支持代理服务器)
- 检查IP是否在中国IP库的CIDR范围内
- 如果检测到中国IP,显示系统维护页面
- 如果IP不在中国IP范围内,正常访问网站
测试模式
为了方便开发和测试,插件支持测试模式:
方法1:URL参数(推荐)
在浏览器地址栏添加 ?test_ip=IP地址 参数:
# 测试中国IP(会被屏蔽)
http://your-domain.com/?test_ip=114.114.114.114
# 测试非中国IP(不会屏蔽)
http://your-domain.com/?test_ip=8.8.8.8
方法2:请求头
使用浏览器开发者工具或ModHeader扩展,添加请求头:
- Header name:
X-Test-IP - Header value:
114.114.114.114
方法3:环境变量
在 .env 文件中添加:
BLOCK_CHINA_IP_TEST_IP=114.114.114.114
常用测试IP
中国IP(会被屏蔽):
114.114.114.114- 114 DNS223.5.5.5- 阿里云 DNS180.76.76.76- 百度 DNS
非中国IP(不会被屏蔽):
8.8.8.8- Google DNS(美国)1.1.1.1- Cloudflare DNS(美国)208.67.222.222- OpenDNS(美国)
技术说明
- 使用CIDR格式的IP段进行匹配
- IP库文件存储在
storage/app/block_china_ip/china_ip_ranges.txt - 支持IPv4地址检测
- 自动处理代理服务器转发的真实IP(X-Forwarded-For、X-Real-IP)
- 检测到中国IP时,显示系统维护页面(
maintenance视图)
注意事项
- IP库需要定期更新以保持准确性
- 建议在生产环境使用前先测试
- 如果使用CDN或代理,请确保正确配置X-Forwarded-For头
- 本地IP(127.0.0.1、::1)不会被屏蔽
- 测试模式仅在开发环境使用,生产环境请移除测试参数
文件结构
BlockChinaIp/
├── Boot.php # 插件启动类
├── config.json # 插件配置文件
├── fields.php # 插件字段配置
├── Controllers/
│ └── Panel/
│ └── BlockChinaIpController.php # 后台控制器
├── Middleware/
│ └── Front/
│ └── BlockChinaIp.php # 前台中间件
├── Services/
│ └── IpBlockService.php # IP检查服务
├── Routes/
│ └── panel.php # 后台路由
├── Views/
│ └── plugins/
│ └── fields/
│ └── ip_database_url.blade.php # IP库字段视图
└── Lang/
├── en/
│ └── common.php # 英文语言包
└── zh-cn/
└── common.php # 中文语言包
更新日志
v1.0.0
- 初始版本
- 支持CIDR格式IP库
- 后台在线下载IP库
- 自动显示系统维护页面
- 支持测试模式