检测客户端IP
判断是否属于ban掉的ip(从禁止IP表里判断)
返回true则定向到
403页面

解决方案 »

  1.   

    将限制的IP存进数据库或以文件存放,用户登录你的BBS的时候,检测被限制IP表或文件里是否有该IP,有则进行跳转或输出信息
      

  2.   

    可以直接读出访问者的IP和存在数据库的数据比一下。。
    如果复杂一点可以采用部分匹配的方式,就可以限制IP段了
      

  3.   

    <?
    /*
    MySQL Table:CREATE TABLE Use_Ip (
    Use_Ip varchar(15) Not Null,
    PRIMARY KEY  (Use_Ip)
    ) TYPE=MyISAM;
    类使用方法:新建对象
    $c=new CheckIp("MySQL主机","Mysql用户名","Mysql密码","Mysql数据库","Mysql数据表");插入新的禁用IP
    if($c->InsertIp("127.0.0.*") == false){
    echo "cannot insert Ip!!";
    exit;
    }删除禁用IP
    $c->DeleteIp("127.0.0.*");检测IP
    if($c->Check("127.0.0.1")){
    echo "your can not pass";
    exit;
    }禁用IP格式单ip: 127.0.0.1IP段: 127.0.0.*
          127.0.*.*
          127.*.*.*
          
    禁用所有Ip: *.*.*.**/class CheckIp {
    var $MySQL_Host;
    var $MySQL_User;
    var $MySQL_Pass;
    var $MySQL_DB;
    var $MySQL_Table;
    var $CheckIP;
    var $conn;

    function CheckIp($M_h,$M_u,$M_p,$M_DB,$M_t){
    $this->MySQL_Host = $M_h;
    $this->MySQL_User = $M_u;
    $this->MySQL_Pass = $M_p;
    $this->MySQL_DB = $M_DB;
    $this->MySQL_Table = $M_t;
    $this->conn=mysql_connect($this->MySQL_Host, $this->MySQL_User, $this->MySQL_Pass);
    if(!mysql_select_db($this->MySQL_DB,$this->conn)) $this->error(mysql_error());

    }

    function InsertIp( $M_ip ){
    $sql="INSERT INTO ".$this->MySQL_Table." VALUES ( '$M_ip' )";
    if(@mysql_query($sql,$this->conn)){
    $this->error(mysql_error());
     return false;
    }
    return true;
    }

    function DeleteIp( $M_ip ){
    $sql="DELETE FROM ".$this->MySQL_Table." WHERE Use_Ip='$M_ip'";
    if(@mysql_query($sql,$this->conn)){
    return false;
    }
    return true;
    }

    function Check( $c_ip ){
    $user_ip=$c_ip;
    $u_i_array=explode(".",$user_ip);

    $query="SELECT * FROM ".$this->MySQL_Table;
    $result=mysql_query($query,$this->conn);
    $Check_Mask = 0;
    while($row=mysql_fetch_Array($result,$this->conn)){
    $m_array=explode(".",$row[Use_Ip]);
    if($m_array[3]==$u_i_array[3] || $m_array[3]=="*"){
    if($m_array[2]==$u_i_array[2] || $m_array[2]=="*"){
    if($m_array[1]==$u_i_array[1] || $m_array[1]=="*"){
    if($m_array[0]==$u_i_array[0] || $m_array[0]=="*"){
    $Check_Mask++;
    break;
    }
    }
    }
    }
    }
    if($Check_Mask > 0){
    return true;
    }
    return false;
    }

    function error( $msg ){
    echo $msg;
    exit;
    }

    }
    ?>