Heim  >  Artikel  >  Backend-Entwicklung  >  php实现过滤IP黑白名单的方法

php实现过滤IP黑白名单的方法

WBOY
WBOYOriginal
2016-07-25 09:05:291206Durchsuche
  1. function ip_test($ip,$iprule){
  2. $ipruleregexp=str_replace('.*','ph',$iprule);
  3. $ipruleregexp=preg_quote($ipruleregexp,'/');
  4. $ipruleregexp=str_replace('ph','\.[0-9]{1,3}',$ipruleregexp);
  5. if(preg_match('/^'.$ipruleregexp.'$/',$ip)) return true;
  6. else return false;
  7. }
复制代码

实现了ip_test这个核心函数后,下面的过程就简单多了,无非就是简单的遍历名单中的每条规则,判断当前连接的IP是否符合规则,并进行对应的步骤。 白名单,当IP至少满足一条规则时继续执行操作:

  1. $curr_ip=$_SERVER['REMOTE_ADDR'];
  2. $white_list=array(...); //白名单规则
  3. $test_success=false;
  4. foreach($white_list as $iprule){
  5. if(ip_test($curr_ip,$iprule)){
  6. $test_success=true;
  7. break;
  8. }
  9. }
  10. if(!$test_success) exit('IP not in white list');
复制代码

黑名单,当IP不满足所有规则时继续执行操作:

  1. $curr_ip=$_SERVER['REMOTE_ADDR'];
  2. $black_list=array(...); //黑名单规则
  3. foreach($black_list as $iprule){
  4. if(ip_test($curr_ip,$iprule)){
  5. exit('IP in black list');
  6. }
  7. }
复制代码

至此,一个简单的PHP实现的IP黑白名单过滤就完成了,希望可以为大家带来帮助。 您可能感兴趣的文章:

PHP安全过滤代码(360提供 安全系数高) PHP过滤post,get敏感数据的实例代码 php 过滤非法与特殊字符串的方法 php 防注入的一段代码(过滤参数) 很好用的php防止sql注入漏洞过滤函数的代码 php防止sql注入正则过滤一例 一段php过滤危险html的代码



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn