本文摘要 DeepSeek
本文介绍了一个基于 PHP 的简易 IP/UA 屏蔽系统,通过两个文件实现后台控制和功能应用,可有效阻止指定 IP 或 IP 段以及爬虫/AI 请求,减少服务器资源占用。核心代码展示了如何通过 CIDR 格式或非标准 IP 段匹配客户端 IP,匹配成功则返回 403 禁止访问状态。该系统支持灵活配置,适用于简单的访问控制需求。
php 简易代码实现功能
纯 php 实现根据设置的 IP 或 IP 段、UA 进行请求屏蔽,将你不喜欢的爬虫或者 AI 请求屏蔽掉,减少服务器资源的占用,2 个文件实现后台控制和功能应用。
核心代码示例
foreach ($blocked_ips as $blocked_ip) {
// 去除可能存在的前后空格
$blocked_ip = trim($blocked_ip);
if (!empty($blocked_ip)) {
if (strpos($blocked_ip, '/')!== false) {
// 处理标准 CIDR 格式的 IP 段
list($network, $mask) = explode('/', $blocked_ip);
$ip_long = ip2long($client_ip);
$net_long = ip2long($network);
$mask_long = -1 << (32 - $mask);
if (($ip_long & $mask_long) === ($net_long & $mask_long)) {
// 若匹配,返回 403 状态码
header('HTTP/1.1 403 Forbidden');
echo '403 禁止访问: 您的访问已被阻止。';
exit;
}
} else {
// 处理非标准 IP 段格式,如 36.132.174
$parts = explode('.', $blocked_ip);
$ip_parts = explode('.', $client_ip);
$match = true;
for ($i = 0; $i < count($parts); $i++) {
if ($parts[$i]!== $ip_parts[$i]) {
$match = false;
break;
}
}
if ($match) {
// 若匹配,返回 403 状态码
header('HTTP/1.1 403 Forbidden');
echo '403 禁止访问: 您的访问已被阻止。';
exit;
}
}
}
}