2
使用PHP禁止特定IP访问我们的站点
Posted by 撒得一地 on 2015年12月8日 in PHP笔记
上一篇: 10个步骤让你的PHP网站变得更加安全
下一篇: 将PHP数组转成待查询的字符串
下一篇: 将PHP数组转成待查询的字符串
有时候我们需要禁止某些特定的访问者访问我们的网站。对于这,最常见的原因就是一些恶意用户持续不断的访问我们的站点,试图进行破坏。虽然有许多技巧可以阻止多个IP地址访问我们的站点,比如使用htaccess, Apache mod_rewrite等。
这里我们介绍一种比较简单的方法,直接用PHP代码进行ip限制。
现在,我们先定义一个数组,这个数组包含了所有你想要禁止的IP地址,然后调用blockIP()函数,来禁止数组里面的所有IP访问我们的站点。
//定义一个数组,包含你想要禁止的ip地址 $block_ip_list = array( '127.0.0.1', '127.0.0.2', '127.0.0.3' ); //调用函数禁止数组里面的所有IP blockIP($block_ip_list);
首先我们先定义一个得到访问者IP地址的函数,这个函数会返回访问者的IP:
// 定义获得ip地址的函数 function getVisitorIP() { //check ip from share internet if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } else{ $ip=$_SERVER['REMOTE_ADDR']; } return $ip; }
然后我们先用getVisitorIP()函数获得当前访问者的IP,然后判断该IP是否在$block_ip_list 这个数组中,如果在,则禁止它:
//定义blockIP函数 function blockIP($block_ip_list){ $ip = getVisitorIP(); if(in_array($ip, $block_ip_list)){ die("Your IP(" . $ip . ") has been blocked !"); } }
下面是阻止多个IP地址访问的完整代码:
//获得访客ip地址 function getVisitorIP() { //check ip from share internet if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } else{ $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } //禁止符合的IP地址 function blockIP($block_ip_list){ $ip = getVisitorIP(); if(in_array($ip, $block_ip_list)){ die("Your IP(" . $ip . ") has been blocked !"); } } //定义所有想要禁止的IP $block_ip_list = array( '127.0.0.1', '127.0.0.2', '127.0.0.3' ); //调用blockIP函数 blockIP($block_ip_list);
这是一段禁止特定IP访问的代码,实现起来很简单,你也可以在其它一些情况下使用这段代码,比如跟踪网站访客等。
上一篇: 10个步骤让你的PHP网站变得更加安全
下一篇: 将PHP数组转成待查询的字符串
下一篇: 将PHP数组转成待查询的字符串
2 Comments
很有用!感谢分享!
这个对于封ip很有效