php实现ip白名单黑名单功能
发布时间:2020-12-13 02:28:01 所属栏目:PHP教程 来源:网络整理
导读:《php实现ip白名单黑名单功能》要点: 本文介绍了php实现ip白名单黑名单功能,希望对您有用。如果有疑问,可以联系我们。 这个是一个检测ip是否非法的php函数,适应于白名单,黑名单功能开发,主要场景应用于:api来源限制,拜访限制等. PHP编程 代码如下: /** ?
《php实现ip白名单黑名单功能》要点: 这个是一个检测ip是否非法的php函数,适应于白名单,黑名单功能开发,主要场景应用于:api来源限制,拜访限制等.PHP编程
代码如下:
/** ?* 平安IP检测,支持IP段检测 ?* @param string $ip 要检测的IP ?* @param string|array $ips? 白名单IP或者黑名单IP ?* @return boolean true 在白名单或者黑名单中,否则不在 ?*/ function is_safe_ip($ip="",$ips=""){ ??? if(!$ip) $ip = get_client_ip();? //获取客户端IP ??? if($ips){ ??????? if(is_string($ips)){ //ip用"," 例如白名单IP:192.168.1.13,123.23.23.44,193.134.*.* ??????????? $ips = explode(",",$ips); ??????? } ??? }else{ //读取后台配置 白名单IP ??????? $obj = new Setting(); ??????? $ips = explode(",$obj->getConfig("whiteip"));? ??? } ??? if(in_array($ip,$ips)){ ??????? return true; ??? } ??? $ipregexp = implode('|',str_replace( array('*','.'),array('d+','.'),$ips));? ??? $rs = preg_match("/^(".$ipregexp.")$/",$ip);? ??? if($rs) return true; ??? return ; } 获取ip地址,这里引用thinkphp内置函数PHP编程
代码如下:
//应网友要求,贴出 get_client_ip() 函数 /** ?* 获取客户端IP地址 ?* @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字 ?* @param boolean $adv 是否进行高级模式获取(有可能被伪装) ?* @return mixed ?*/ function get_client_ip($type = 0,$adv=false) { ??? $type?????? =? $type ? 1 : 0; ??? static $ip? =?? NULL; ??? if ($ip !== NULL) return $ip[$type]; ??? if($adv){ ??????? if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { ??????????? $arr??? =?? explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']); ??????????? $pos??? =?? array_search('unknown',$arr); ??????????? if(false !== $pos) unset($arr[$pos]); ??????????? $ip???? =?? trim($arr[0]); ??????? }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { ??????????? $ip???? =?? $_SERVER['HTTP_CLIENT_IP']; ??????? }elseif (isset($_SERVER['REMOTE_ADDR'])) { ??????????? $ip???? =?? $_SERVER['REMOTE_ADDR']; ??????? } ??? }elseif (isset($_SERVER['REMOTE_ADDR'])) { ??????? $ip???? =?? $_SERVER['REMOTE_ADDR']; ??? } ??? // IP地址合法验证 ??? $long = sprintf("%u",ip2long($ip)); ??? $ip?? = $long ? array($ip,$long) : array('0.0.0.0',0); ??? return $ip[$type]; } 以上就是本文的全部内容了,希望对大家理解php检测IP有所赞助.PHP编程 编程之家培训学院每天发布《php实现ip白名单黑名单功能》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |