ホームページ  >  記事  >  バックエンド開発  >  IP_PHP を禁止する関数のチュートリアル

IP_PHP を禁止する関数のチュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:00:09878ブラウズ

 

関数 check_ip($range,$ip='') {
if($ip == '') $ip = getenv("REMOTE_ADDR");
if ($ip == "127.0.0.1") 1 を返す;
$結果 = 1;
if (ereg("([0-9] ).([0-9] ).([0-9] ).([0-9] )/([0-9] )",$range,$登録)) {
$ipl = ip2long($ip);
$rangel = ip2long($regs[1] . "." . $regs[2] . "." . $regs[3] . "." . $regs[4]);

$マスク = 0;

for ($i = 0; $i if ($i $maskl = $maskl pow(2,(30-$i));
}
}

if (($maskl & $rangel) == ($maskl & $ipl)) {
1 を返します;
} その他 {
0 を返す;
}
} その他 {

$maskocts = split(".",$range);
$ipocts = split(".",$ip);
for ($i=0; $i if (ereg("[([0-9] )-([0-9] )]",$maskocts[$i],$regs)) {
if ( ($iocts[$i] > $regs[2]) || ($iocts[$i] < $regs[1])) {
$結果 = 0;
}
}
それ以外
{
if ($maskocts[$i] <> $iocts[$i]) {
$結果 = 0;
}
}
}
}
$result を返します;
}

関数 auth_ip(){
$結果 = 0;
$null_check = 1;

$path = "ip.cf"; //ip 制限構成文件,実行的格式です
/*
xxx.xxx.xxx.xxx 比如 127.0.0.2
xxx.xxx.xxx.[yyy-zzz] 比例 1270.0.0.[2-23]
xxx.xxx.xxx.xxx/nn 比如 127.0.0.0/24
*/
$fg=@fopen($path,"r");

while($line=@fgets($fg,1024)){
$line = トリム($line);
$line=ereg_replace("#.*","",$line);
if ($line != ""){
$null_check = 0;
if (check_ip($line)) {
fclose($fg);
1 を返します;
}
}
}
@fclose($fg);
if ($null_check == 1) 1 を返す;
$result を返します;
}


?>


www.bkjia.com本当http://www.bkjia.com/PHPjc/445537.html技術記事 function check_ip($range,$ip=) { if($ip == ) $ip = getenv(REMOTE_ADDR); if ($ip == 127.0.0.1) は 1 を返します。 $結果 = 1; if (ereg(([0-9] ).([0-9] ).([0-9] ).([0-9] )/([0-9] ),$range,$r. ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。