基于PHP的IP地址访问控制,放在任何一个php文件开头都可以起作用。比如说放在wp-comments-post.php开头,黑名单中的IP就无法在博客上发表评论;如果放在评论框前面,那黑名单中的IP只能浏览博客而不能看到评论框;如果放在index.php开头,黑名单中的IP无法打开网站。
源码如下:(这个主题貌似有些问题,有些符号会自动变成全角符,且排版全乱,复制的时候注意替换一下。)$targetip = $_SERVER['REMOTE_ADDR'];
$SIP = str_replace(", ", "",str_replace($_SERVER['REMOTE_ADDR'], "",$_SERVER["HTTP_X_FORWARDED_FOR"]));
if ($_SERVER["HTTP_X_FORWARDED_FOR"] != "" ) {
$targetip = $SIP;
}
$blacklist = array();
$file = dirname(__FILE__)."/blacklist.txt"; //黑名单文件,一个IP一行
$content = file_get_contents($file);
$blacklist = explode("\n",$content);
if (in_array($targetip, $blacklist)){
echo "您的IP已被列入黑名单,本次访问已被阻止。若为误判,请与网站管理员联系以解除访问限制。";
exit;
}
感觉这样一段代码还是很好用的,我把它放在评论框和wp-comments-post.php中了,也就是说允许Spammer查看网站,但不允许他们发表评论,看下效果: