|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最近陆续的有人问我学习php的心得,现在整理为下面,希望可以对大家有些帮助。
需求来自一个运维的同事,对一个php文件实行举行IP过滤,不便利间接设置服务器,因而必要间接在php文件开首举行IP的过滤。
IP过滤划定规矩,能够有以下情势:
1.完全的IP地点如:192.168.0.1
2.某一段IP如:192.168.0.*。
运维能够自界说IP口角名单,由多个IP过滤划定规矩构成,保留在数组中。经由过程编写代码,完成IP口角名单功效。一个对照复杂的需求。
起首完成一个函数,功效是判别ip是不是切合某个ip过滤划定规矩:
functionip_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))returntrue;
elsereturnfalse;
}
完成了ip_test这个中心函数后,上面的历程就复杂多了,不过就是复杂的遍历名单中的每条划定规矩,判别以后毗连的IP是不是切合划定规矩,并举行对应的步骤。
白名单,当IP最少满意一条划定规矩时持续实行操纵
$curr_ip=$_SERVER[REMOTE_ADDR];
$white_list=array(...);//白名单划定规矩
$test_success=false;
foreach($white_listas$iprule){
if(ip_test($curr_ip,$iprule)){
$test_success=true;
break;
}
}
if(!$test_success)exit(IPnotinwhitelist);
黑名单,当IP不满意一切划定规矩时持续实行操纵
$curr_ip=$_SERVER[REMOTE_ADDR];
$black_list=array(...);//黑名单划定规矩
foreach($black_listas$iprule){
if(ip_test($curr_ip,$iprule)){
exit(IPinblacklist);
}
}
就如许,一个复杂的PHP完成的IP口角名单过滤就完成了。这篇博客次要是给那些主营业不是开辟的职员,如:手艺撑持、运维等。因为太复杂,底本不想写,厥后谁人同事感激我协助,对我说这个他在网上找了好久,都没有找到符合的办理计划,我就想说不定这个还真有人必要呢。本文链接http://www.cxybl.com/html/wlbc/Php/20130326/37394.html看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢? |
|