ホームページ >バックエンド開発 >PHPチュートリアル >IP アクセス コードの禁止_PHP チュートリアル

IP アクセス コードの禁止_PHP チュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-13 17:08:54914ブラウズ

if($_SERVER['HTTP_X_FORWARDED_FOR']){
     $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}elseif($_SERVER['HTTP_CLIENT_IP']){
     $onlineip=$_SERVER['HTTP_CLIENT_IP'];
}その他{
     $onlineip=$_SERVER['REMOTE_ADDR'];
}
$onlineip =substrs($onlineip,16);
//截取IP
関数 substrs($content,$length) {
        if($length && strlen($content)>$length){
                $num=0;
                for($i=0;$i                         if(ord($content[$i])>127){
                                $num++;
                        }
                }
                $num%2==1 ? $content=substr($content,0,$length-4):$content=substr($content,0,$length-3);
                $content.='..';
        }
        $content を返します;
}
//分析IPが列表内にあるかどうか
関数 cvipfrom($ip){
        グローバル $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");
        群れ($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);
        }その他{
                $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);
                }その他{
                        $f='';//IP が制限列表内に存在しない場合は空を返します
                }
        }
        if(空($f) && $s!==false){
                while(ereg("^$s_ip","n".$l_d)!==false){
                        if($ipa0==1 || $f=s_ip($db,$s,$ip,$l_d)) ブレーク;
                        list($l_d,$cff)=nset($db);
                        $cff && $ff=$cff;
                }
        }
        fclose($db);
        $f を返しますか? $f : $ff;
}
関数 s_ip($db,$s,$ip,$l_d=''){
        グローバル $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         if ($ip>=$ip_a[0] && $ip }
関数 nset($db){
$l_d=fgets($db,100);
$ip_a=explode("t",$l_d);
配列を返します($l_d,$ip_a[2].$ip_a[3]);
}
関数 d_ip($d_ip){
for($i=0; $i $ d_ip [$ i] }
戻り $d_ip;
}


$ipfrom=cvipfrom($onlineip);
if(!empty($ipfrom)){ //ipfrom IP ソースが空ではありません...アクセスは禁止されています。 死ね(「くたばれ」);
}
?>
[/コード]

上記のコードは PHPWIND 4.0 に盗まれました。phpwind.net から ipdata をダウンロードしてください...
phpwind はユーザーソースを表示するために使用されますが、私はその逆を行います...制限付き IP を ipdata に直接追加します...

http://www.bkjia.com/PHPjc/629799.html

tru​​ehttp://www.bkjia.com/PHPjc/629799.html技術記事 if($_SERVER['HTTP_X_FORWARDED_FOR']){ $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'] }elseif($_SERVER['HTTP_CLIENT_IP']){ $onlineip=$_SERVER['HTTP_CLIENT_IP']; =$_SERV...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。