您好,欢迎访问一九零五行业门户网

php实现过滤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至少满足一条规则时继续执行操作:
$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黑白名单过滤就完成了,希望可以为大家带来帮助。您可能感兴趣的文章:
php安全过滤代码(360提供 安全系数高)php过滤post,get敏感数据的实例代码php 过滤非法与特殊字符串的方法php 防注入的一段代码(过滤参数)很好用的php防止sql注入漏洞过滤函数的代码php防止sql注入正则过滤一例一段php过滤危险html的代码
其它类似信息

推荐信息