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