PHP简单的检查ip是否在白名单/黑名单内
如果名单内都是固定的ip,直接in_array就行了,如果是包含*的,可以使用正则,但是数据量大的时候正则效率堪忧
//要检查的ip $ip = '192.168.43.18'; //ip名单 $ip_list = ['117.20.43.58', '117.*.43.58', '117.20.*.*', '198.32.43.*', '34.88.201.205', '192.168.*.18', '158.20.11.22', '217.20.45.66']; public function checkip($ip, $ip_list) { //检查ip if (in_array($ip, $ip_list)) { return '存在' ; } //检查包含*的情况 $ips = explode('.', $ip); foreach ($ip_list as $row) { if (strpos($row, '*') === false) { continue; } $rows = explode('.', $row); foreach ($ips as $key => $val) { if ($rows[$key] != '*' && $rows[$key] != $val) { continue 2; } if ($key == 3) { return '存在'; } } } return '不存在'; }
PHP简单的检查ip是否在白名单/黑名单内 https://www.gzza.com/1129.html
本网站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。原创内容除特殊说明外,转载本站文章请注明出处。
如有侵权、不妥之处,联系删除。 Email:master@gzza.com
本网站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。原创内容除特殊说明外,转载本站文章请注明出处。
如有侵权、不妥之处,联系删除。 Email:master@gzza.com
THE END