PHP禁止指定IP访问或调用代码

写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
喜欢就支持一下吧
点赞7 分享
评论区 抢沙发
头像
请勿灌水!文明评论!
提交
头像

昵称

取消
昵称表情图片

    暂无评论内容