PHPはIP白黒リストのフィルタリングを実現する
需要は1つの运維の同僚から来て、1つのphpファイルに対してIPフィルタリングを行って、直接サーバーを配置するのが不便で、そこで直接phpファイルの初めにIPのフィルタリングを行う必要があります.
IPフィルタリングルールには、次のような形式があります.
1.完全なIPアドレス:192.168.0.1
2.あるIPは192.168.0.*のようです.
運行メンテナンスはIP白黒リストをカスタマイズすることができ、複数のIPフィルタリング規則から構成され、配列に保存される.コードを記述することで,IP白黒リスト機能を実現する.比較的簡単なニーズです.
まず、ipがipフィルタリングルールに合致するかどうかを判断する関数を実現します.
ip_を実現しましたtestというコア関数の後、次のプロセスは簡単になります.リストの各ルールを簡単に遍歴し、現在接続されているIPがルールに合致しているかどうかを判断し、対応するステップにほかならない.
IPが少なくとも1つのルールを満たしている場合に操作を継続するホワイトリスト
ブラックリストは、IPがすべてのルールを満たしていない場合に操作を継続します.
このように,簡単なPHPで実現したIP白黒リストフィルタリングが完了した.このブログは主に、テクノロジーサポート、メンテナンスなど、主なビジネスが開発されていない人に提供されています.簡単すぎて、もともと書きたくなかったので、その同僚は私の助けに感謝して、私にこれを言って、彼はネット上で長い間探して、適切な解決策を見つけていないので、私はこれが本当に必要な人がいるかどうか言いたいです.
IPフィルタリングルールには、次のような形式があります.
1.完全なIPアドレス:192.168.0.1
2.あるIPは192.168.0.*のようです.
運行メンテナンスはIP白黒リストをカスタマイズすることができ、複数のIPフィルタリング規則から構成され、配列に保存される.コードを記述することで,IP白黒リスト機能を実現する.比較的簡単なニーズです.
まず、ipがipフィルタリングルールに合致するかどうかを判断する関数を実現します.
function ip_test($ip,$iprule){
$ipruleregexp=str_replace('.*','ph',$iprule);
$ipruleregexp=preg_quote($ipruleregexp,'/');
$ipruleregexp=str_replace('ph','\.[0-9]{1,3}',$ipruleregexp);
if(preg_match('/^'.$ipruleregexp.'$/',$ip)) return true;
else return false;
}
ip_を実現しましたtestというコア関数の後、次のプロセスは簡単になります.リストの各ルールを簡単に遍歴し、現在接続されているIPがルールに合致しているかどうかを判断し、対応するステップにほかならない.
IPが少なくとも1つのルールを満たしている場合に操作を継続するホワイトリスト
$curr_ip=$_SERVER['REMOTE_ADDR'];
$white_list=array(...); //
$test_success=false;
foreach($white_list as $iprule){
if(ip_test($curr_ip,$iprule)){
$test_success=true;
break;
}
}
if(!$test_success) exit('IP not in white list');
ブラックリストは、IPがすべてのルールを満たしていない場合に操作を継続します.
$curr_ip=$_SERVER['REMOTE_ADDR'];
$black_list=array(...); //
foreach($black_list as $iprule){
if(ip_test($curr_ip,$iprule)){
exit('IP in black list');
}
}
このように,簡単なPHPで実現したIP白黒リストフィルタリングが完了した.このブログは主に、テクノロジーサポート、メンテナンスなど、主なビジネスが開発されていない人に提供されています.簡単すぎて、もともと書きたくなかったので、その同僚は私の助けに感謝して、私にこれを言って、彼はネット上で長い間探して、適切な解決策を見つけていないので、私はこれが本当に必要な人がいるかどうか言いたいです.