有些项目可能会用到一个IP地址的白名单黑名单之类的验证。
比如,只有IP地址在白名单中,才可以访问该系统。
那么此时,白名单的维护,一般是一个文件,里边是一些IP地址(每行一个IP),当然也有的可能是用数据库记录白名单。
当然,即使放在数据库中记录(方便管理),也可以在后台根据数据库生成IP白名单的配置文件,每次更新白名单时,都根据数据库数据,重新写一下白名单的配置文件。
这里,假设白名单的IP地址是存储在一个文件中:while_ips.conf
一般常见的两种情况:一种是白名单文件中的所有IP都是完整的,另一种是有的IP是有范围的(带.*)
一、每一个IP都是完整的IP
127.0.0.0
192.168.1.1
192.168.1.2
192.168.1.30
123.200.20.200
123.101.21.201
以上假设就是IP白名单。
此时的思路是,从文件中读取所有IP地址写入一个数组,每行就是一个元素。
然后判断当前IP是否在这个数组中。这样就实现了这个IP是不是在白名单的验证。
这种实现,比较简单。
function white_ips($file)
{
$a = [];
if (is_file($file)) {// 判断是不是文件
$f = fopen($file, 'r');// 只读的方式打开文件