深爱那片海 发表于 2015-1-16 22:15:43

PHP网页编程之口角名单:PHP完成IP口角名单过滤

最近陆续的有人问我学习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,.{1,3},$ipruleregexp);
if(preg_match(/^.$ipruleregexp.$/,$ip))returntrue;
elsereturnfalse;
}
完成了ip_test这个中心函数后,上面的历程就复杂多了,不过就是复杂的遍历名单中的每条划定规矩,判别以后毗连的IP是不是切合划定规矩,并举行对应的步骤。
白名单,当IP最少满意一条划定规矩时持续实行操纵

$curr_ip=$_SERVER;
$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;
$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,我啥时候写一个呢?

爱飞 发表于 2015-1-19 06:26:03

写的比较杂,因为我也是个新手,不当至于大家多多指正。

第二个灵魂 发表于 2015-1-25 09:36:44

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

若天明 发表于 2015-2-2 21:34:58

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

莫相离 发表于 2015-2-8 06:35:21

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

再见西城 发表于 2015-2-24 21:59:03

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

admin 发表于 2015-3-7 13:50:05

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

仓酷云 发表于 2015-3-15 07:35:52

写的比较杂,因为我也是个新手,不当至于大家多多指正。

分手快乐 发表于 2015-3-21 21:57:53

兴趣是最好的老师,百度是最好的词典。
页: [1]
查看完整版本: PHP网页编程之口角名单:PHP完成IP口角名单过滤