2

使用PHP禁止特定IP访问我们的站点

Posted by 撒得一地 on 2015年12月8日 in 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访问的代码,实现起来很简单,你也可以在其它一些情况下使用这段代码,比如跟踪网站访客等。

转载请注明: http://coderschool.cn/1244.html

标签:

上一篇:

下一篇:

相关推荐

2 Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 + 8 = ?

网站地图|XML地图

Copyright © 2015-2018 技术拉近你我! All rights reserved.
闽ICP备15015576号-1,版权所有©psz.