禁止IP访问网站的多种方法分享(linux,php,nginx,apache)
PHP禁止某个IP或IP段访问
废话不多说,客官请看:
<? //禁止某个IP $banned_ip=array( "127.0.0.1", //"119.6.20.66", "192.168.1.4" ); if(in_array(getenv("REMOTE_ADDR"),$banned_ip)) { die("您的IP禁止访问!"); } //禁止某个IP段 $ban_range_low=ip2long("119.6.20.65"); $ban_range_up=ip2long("119.6.20.67"); $ip=ip2long($_SERVER["REMOTE_ADDR"]); if($ip>$ban_range_low&&$ip<$ban_range_up) { echo"您的IP在被禁止的IP段之中,禁止访问!"; exit(); } ?>
apache禁止使用IP访问
方法一:在httpd.conf文件最后面,加入以下代码
NameVirtualHost221.*.*.* <VirtualHost221.*.*.*> ServerName221.*.*.* <Location/> OrderAllow,Deny Denyfromall </Location> </VirtualHost> <VirtualHost221.*.*.*> DocumentRoot"c:/web" ServerNamewww.nhooo.com </VirtualHost>
说明:蓝色部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。红色部分就是允许通过www.nhooo.com这个域名访问,主目录指向c:/web(这里假设你的网站的根目录是c:/web)
Linux屏蔽IP访问
#屏蔽单个IP的命令是 iptables-IINPUT-s123.45.6.7-jDROP #封整个段即从123.0.0.1到123.255.255.254的命令 iptables-IINPUT-s123.0.0.0/8-jDROP #封IP段即从123.45.0.1到123.45.255.254的命令 iptables-IINPUT-s124.45.0.0/16-jDROP #封IP段即从123.45.6.1到123.45.6.254的命令是 iptables-IINPUT-s123.45.6.0/24-jDROP serviceiptablessave
保存在/etc/sysconfig/iptables若没有iptables文件会自动创建
Nginx禁止IP访问
首先建立下面的配置文件放在nginx的conf目录下面,命名为blocksip.conf:
deny4.4.4.4//这是nginx要禁止的IP
保存一下。
在nginx的配置文件nginx.conf中加入:includeblocksip.conf;然后重启nginx,就可以生效了。被封锁的ip打开站点的时候,就会提示:
403Forbidden
blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问:
denyIP;
allowIP;
#blockallips
denyall;
#allowallips
allowall;
其中网段的写法是这样的:192.168.1.0/24这样的形式。