ホームページ  >  記事  >  バックエンド開発  >  PHP は IP アクセスを制限し、指定された IP アクセスのみを許可します。 IP_PHP チュートリアルのフィルターに * ワイルドカードを使用します。

PHP は IP アクセスを制限し、指定された IP アクセスのみを許可します。 IP_PHP チュートリアルのフィルターに * ワイルドカードを使用します。

WBOY
WBOYオリジナル
2016-07-14 10:08:041634ブラウズ

[php]

01./**
02. * アクセスしたIPが指定された許可IPかどうかを確認します
03. * ここに説明を入力します...
04.*/
05.関数 check_ip(){
06. $ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49'); 07. $IP=getIP(); 08. $check_ip_arr=explode('.',$IP);//検出対象のIPを配列に分割する
09. #IP を制限する
10. if(!in_array($IP,$ALLOWED_IP)) {
11. foreach ($ALLOWED_IP を $val){
12. If(strpos($val,'*')!==false){//* 記号置換記号が見つかりました
13. 14. $arr=explode('.', $val); 15. $bl=true; // ループ検出で一致があったかどうかを記録するために使用されます
; 16. for($i=0;$i 17. If($arr[$i]!='*'){//* に等しくない場合はチェックされますが、* 記号の置換の場合はチェックされません。 18. If($arr[$i]!=$check_ip_arr[$i]){
19. _ 20. to 21. 22. 23. }//終わり 24. if($bl){// true の場合、一致が成功した場合に返されます
25. 戻る
26. 死ぬ
27. 28. 29. }//end foreach
30. header('HTTP/1.1 403 禁止'); 31. エコー「アクセス禁止」
32. 死ぬ
33. }
34.}
/**
* アクセスしたIPが指定された許可IPかどうかを確認します
* ここに説明を入力してください...
​*/
関数 check_ip(){
$ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49');
$IP=getIP();
$check_ip_arr=explode('.',$IP);//検出するIPを配列に分割する
#制限IP
if(!in_array($IP,$ALLOWED_IP)) {
foreach ($ALLOWED_IP として $val){
If (Strpos ($ Val, '*')! == False) {// * 代替手段があることがわかりました
$arr=array();///
$arr=explode('.', $val);
$bl=true;//ループ検出で一致が成功したかどうかを記録するために使用されます
for($i=0;$i If($arr[$i]!='*'){//* に等しくない場合はチェックされますが、* 記号置換の場合はチェックされません
。 If($arr[$i]!=$check_ip_arr[$i]){
$bl=false;
Break; // この IP のチェックを終了し、次の IP のチェックを続行します。 }
}
}//
で終了 If($bl){// true の場合、一致が見つかった場合に返されます
戻る;
死ね;
}
}
}//foreach を終了します
header('HTTP/1.1 403 禁止');
echo "アクセス禁止";
死ぬ;
}
}[php]
01.
[php]
01.

/**<br>
02. * アクセスしたIPを取得<br>
03. * ここに説明を入力します...<br>
04.*/ <br>
05.function getIP() { <br>
06. isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"] を返す <br>
07. :(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"] <br>
08. :$_SERVER["REMOTE_ADDR"]);
09.}

10.

11.
12. チェックが必要な場合は check_ip(); を呼び出します。この関数は、指定された IP のみにファイルへのアクセスを許可し、複数の IP に一致するように * ワイルドカードを提供します。 [php]
/*** アクセスされた IP を取得 * ここに説明を入力 ...*/ function getIP() { return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"] :(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP "] :$_SERVER["REMOTE_ADDR"]); } /**
* アクセスされたIPを取得します
* ここに説明を入力してください...
​*/
関数 getIP() {
return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"]
:(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"]
:$_SERVER["REMOTE_ADDR"]);
}


チェックする必要がある場合は check_ip(); を呼び出すだけです。この関数は、指定された IP のみにファイルへのアクセスを許可し、複数の IP に一致するように IP に * ワイルドカードを指定します。



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

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/477824.html技術記事 [php] 01./**02. * アクセスしたIPが指定された許可IPかどうかを確認します 03. * ここに説明を入力します... 04.*/ 05.function check_ip(){ 06. $ALLOWED_IP=array(192.168.2.*,127.0.0.1,192.16...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。