写pic.zai1.com图床的时候想到的,拉黑恶意IP禁止使用。
把要拉黑的IP保存到ip.txt一行一个,被拉黑的IP无法访问或调用,或做跳转或拒绝访问都可以自行扩展
需要注意:请手动创建一个ip.txt,否则报错。
代码如下:
<?php
// 获取访客IP
$visitor_ip = $_SERVER['REMOTE_ADDR'];
$blacklist_file = 'ip.txt';
$blacklisted_ips = file($blacklist_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 检查IP是否在ip.txt黑名单中
if (in_array($visitor_ip, $blacklisted_ips)) {
// IP 在黑名单中,拒绝访问
header('HTTP/1.1 403 Forbidden');
echo 'Access Denied';
exit;
}
// 如果不在黑名单 正常的代码。
?>
如果你使用了CDN那么用上面的代码可能获取到的是节点IP,你可以使用以下代码解决。
<?php
// 针对你使用了CDN,来获取用户IP
$visitor_ip = $_SERVER['HTTP_CF_CONNECTING_IP'] ?? $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['REMOTE_ADDR'];
$blacklist_file = 'ip.txt';
$blacklisted_ips = file($blacklist_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if (in_array($visitor_ip, $blacklisted_ips)) {
// IP 在黑名单中,拒绝访问
header('HTTP/1.1 403 Forbidden');
echo 'Access Denied';
exit;
}
// 允许访问的代码
?>
关注公众号获取更多资讯~
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容