Ban IP access code_PHP tutorial

WBOY
Release: 2016-07-13 17:08:54
Original
886 people have browsed it

if($_SERVER['HTTP_X_FORWARDED_FOR']){
     $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif($_SERVER['HTTP_CLIENT_IP']){
     $onlineip=$_SERVER['HTTP_CLIENT_IP'];
}else{
     $onlineip=$_SERVER['REMOTE_ADDR'];
}
$onlineip =substrs($onlineip,16);
//截取IP
function substrs($content,$length) {
        if($length && strlen($content)>$length){
                $num=0;
                for($i=0;$i<$length-3;$i++) {
                        if(ord($content[$i])>127){
                                $num++;
                        }
                }
                $num%2==1 ? $content=substr($content,0,$length-4):$content=substr($content,0,$length-3);
                $content.='..';
        }
        return $content;
}
//分析IP是否在 列表内
function cvipfrom($ip){
        global $ipa0;
        $d_ip=explode(".",$ip);
        $f_n=file_exists("./ipdata/$d_ip[0].txt") ? "./ipdata/$d_ip[0].txt" : './ipdata/0.txt';
        $ip=implode('.',d_ip($d_ip));
        $db=fopen($f_n,"rb");
        flock($db,LOCK_SH);
        $d=fread($db,filesize($f_n));
        $s_ip="n$d_ip[0].$d_ip[1].$d_ip[2]";
        if($s=strpos($d,$s_ip)){
                !($f=s_ip($db,$s,$ip)) && list($l_d,$ff)=nset($db);
        }else{       
                $s_ip="n$d_ip[0].$d_ip[1]";
                if($s=strpos($d,$s_ip)){
                        !($f=s_ip($db,$s,$ip)) && list($l_d,$ff)=nset($db);
                }elseif($s=strpos($d,"n$d_ip[0]") && $f_n=='./ipdata/0.txt'){
                        $s_ip="n$d_ip[0]";
                        !($f=s_ip($db,$s,$ip)) && list($l_d,$ff)=nset($db);
                }else{
                        $f='';//IP 没有在受限列表内就返回空
                }
        }
        if(empty($f) && $s!==false){
                while(ereg("^$s_ip","n".$l_d)!==false){
                        if($ipa0==1 || $f=s_ip($db,$s,$ip,$l_d)) break;
                        list($l_d,$cff)=nset($db);
                        $cff && $ff=$cff;
                }
        }
        fclose($db);
        return $f ? $f : $ff;
}
function s_ip($db,$s,$ip,$l_d=''){
        global $ipa0;
        if(!$l_d){
                fseek($db,$s+1,SEEK_SET);
                $l_d=fgets($db,100);
        }
        $ip_a=explode("t",$l_d);
        $ip_a[0]=implode('.',d_ip(explode('.',$ip_a[0])));
        $ip_a[1]=implode('.',d_ip(explode('.',$ip_a[1])));
        if($ip<$ip_a[0]) $ipa0=1;
        if ($ip>=$ip_a[0] && $ip<=$ip_a[1]) return $ip_a[2].$ip_a[3];
}
function nset($db){
         $l_d=fgets($db,100);
        $ip_a=explode("t",$l_d);
Return array($l_d,$ip_a[2].$ip_a[3]);
}
function d_ip($d_ip){
for($i=0; $i<=3; $i++){
                  $d_ip[$i]                                                                                                                                                       ​        }
         return $d_ip;
}


$ipfrom=cvipfrom($onlineip);
if(!empty($ipfrom)){ //ipfrom IP source is not empty... Access is prohibited. Display FUCK YOU
Die("fuck you");
}
?>
[/code]

The above code was stolen to PHPWIND 4.0. Please download ipdata from phpwind.net...
phpwind is used to display the user source, but I do the opposite...add restricted IP directly in ipdata...

http://www.bkjia.com/PHPjc/629799.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/629799.htmlTechArticleif($_SERVER['HTTP_X_FORWARDED_FOR']){ $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR']; }elseif ($_SERVER['HTTP_CLIENT_IP']){ $onlineip=$_SERVER['HTTP_CLIENT_IP']; }else{ $onlineip=$_SERV...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template