首页 ? PHP ? PHP实现ip白名单和黑名单的应用——IP匹配IP段

PHP实现ip白名单和黑名单的应用——IP匹配IP段

添加评论 次下载365游戏棋牌游戏_365棋牌辅助透视好用吗_365手游棋牌免费送金币

【提示】 非法信息举报请联系本站小编 QQ:5.4069748.5

PHP IP匹配IP段

/**
?*?判断某ip是否落在ip段中
?*?调用案例:
?*?$aIPs?=?array('192.168.1.1-192.168.2.2','192.168.0.1-192.168.0.254','192.168.3.1-192.168.3.254','192.168.4.1-192.168.4.254');
?*?$this->checkIPValid('192.168.1.1',$aIPs);
?*?@param?$sIP?string?192.168.1.10
?*?@param?$aIPs?array
?*?@return?bool
?*/
public?function?checkIPValid($sIP,$aIPs){
????$sIP?=?trim($sIP);
????if(empty($sIP)){
????????return?false;
????}
????if(!is_array($aIPs)){
????????$aIPs?=?str_replace(array("rn","r","n"),chr(13),$aIPs);
????????$aIPs?=?explode(chr(13),$aIPs);
????????$aIPs?=?array_filter($aIPs);
????}
????if(empty($aIPs)){
????????return?true;
????}
????$bFlag?=?false;
????$sIP1?=?ip2long($sIP);
????foreach?($aIPs?as?$ip)?{
????????if(strpos($ip,'-')!==false){
????????????list($start,?$end)?=?explode('-',?$ip);
????????????$start?=?sprintf("%u",?ip2long($start));
????????????$end?=?sprintf("%u",ip2long($end));
????????????if($sIP1?>=?$start?&&?$sIP1?<=?$end){
????????????????$bFlag?=?true;
????????????????break;
????????????}
????????}else{
????????????if($sIP?==?$ip){
????????????????$bFlag?=?true;
????????????????break;
????????????}
????????}
????}
????return?$bFlag;
}