阻止黑名单中的IP访问

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

ecshop 阻止某IP访问该网站。小心使用。 在网站源码中加入此段代码。。(菜鸟注意:改前一定要备份。)

<?php

$ip = $_SERVER['REMOTE_ADDR']; //访问者IP

$blacklist = array();

$file = dirname(__FILE__)."/black.list"; //黑名单

require_once($file);

if (in_array($ip, $blacklist)){ //阻止黑名单中的IP访问

header('HTTP/1.0 404 Not Found');

exit;

}

?>



其实网页源码都有(<?php)(?>)所以你只要复制中间的部分就可以了。

将下列源码复制新建文件black.list 文件 。

black.list 文件如下

<?php

$blacklist[]='111.222.333.444'; // 一行一个

?>

在black.list的文件里面来管理要禁止的IP 地址

回答:
提高Discuz防DDOS能力的方法和代码

由于admincp文件的特殊性。在产生新连接的时候。会占用很大的系统资源。所以,多个IP不断地访问admincp.php文件的时候,服务器很容易就被DDOS至死机状态。

解决办法:
admincp.php文件的开始里<?php的下面加入下面代码: if(preg_replace("/https?://([^/]+).*/i", "\1", $HTTP_SERVER_VARS[’HTTP_REFERER’]) != $HTTP_SERVER_VARS[’HTTP_HOST’]) {
exit(’警告----你的操作已经被禁止。’);
}扩展,用相同的方法在每个文件头加入相同代码可以大大提高论坛的防ddos能力:
index.php头加入 if(preg_replace("/https?://([^/]+).*/i", "\1", $HTTP_SERVER_VARS[’HTTP_REFERER’]) != $HTTP_SERVER_VARS[’HTTP_HOST’]) {
exit(’点击进入论坛。<a href="http://www.freediscuz.com’>http://www.freediscuz.com/index.php">http://www.freediscuz.com</a>’);
}论坛根目录里的其他php文件头加入以下代码: if(preg_replace("/https?://([^/]+).*/i", "\1", $HTTP_SERVER_VARS[’HTTP_REFERER’]) != $HTTP_SERVER_VARS[’HTTP_HOST’]) {
exit(’警告----你的操作已经被禁止。<a href="http://www.freediscuz.com’>http://www.freediscuz.com/index.php">http://www.freediscuz.com</a>’);

}
这样修改以后,每个访问你的论坛的人都必须从首页点击链接才能进入论坛,如果是DDOS攻击论坛的话,攻击者发送的信息就不会传递给论坛的php程序了。这样就大大的节省了系统资源,使得论坛的防DDOS能力大大增加。特别是在unix系统下,防御能力甚至是数倍的增加。 当然,如果你想完全解决防DDOS,那最好是在屏蔽IP访问了,但通常我们租用空间,管理员不会轻易封IP的,所以只能这样了。

注意修改代码里的地址为你的论坛地址。