需求来自一个运维的同事,对一个php文件执行进行IP过滤,不方便直接配置服务器,于是需要直接在php文件开头进行IP的过滤。
IP过滤规则,可以有如下形式:
1.完整的IP地址 如:192.168.0.1
2.某一段IP 如:192.168.0.* 。
运维可以自定义IP黑白名单,由多个IP过滤规则组成,保存在数组中。通过编写代码,实现IP黑白名单功能。一个比较简单的需求。
首先实现一个函数,功能是判断ip是否符合某个ip过滤规则:
function ip_test($ip,$iprule){
$ipruleregexp=str_replace('.*','ph',$iprule);
$ipruleregexp=preg_quote($ipruleregexp,'/');
$ipruleregexp=str_replace('ph','\.[0-9]{1,3}',$ipruleregexp);
if(preg_match('/^'.$ipruleregexp.'$/',$ip)) return true;
else return false;
}
实现了ip_test这个核心函数后,下面的过程就简单多了,无非就是简单的遍历名单中的每条规则,判断当前连接的IP是否符合规则,并进行对应的步骤。
白名单,当IP至少满足一条规则时继续执行操作
$curr_ip=$_SERVER['REMOTE_ADDR'];
$white_list=array(...); //白名单规则
$test_success=false;
foreach($white_list as $iprule){
if(ip_test($curr_ip,$iprule)){
$test_success=true;
break;
}
}
if(!$test_success) exit('IP not in white list');
黑名单,当IP不满足所有规则时继续执行操作
$curr_ip=$_SERVER['REMOTE_ADDR'];
$black_list=array(...); //黑名单规则
foreach($black_list as $iprule){
if(ip_test($curr_ip,$iprule)){
exit('IP in black list');
}
}
就这样,一个简单的PHP实现的IP黑白名单过滤就完成了。这篇博客主要是给那些主业务不是开发的人员,如:技术支持、运维等。由于太简单,原本不想写,后来那个同事感谢我帮忙,对我说这个他在网上找了很久,都没有找到合适的解决方案,我就想说不定这个还真有人需要呢。
分享到:
相关推荐
黑白名单设置的工作原理是:邮件服务器会自动对收发邮件进行检查,如果邮件来自黑名单中的 IP 地址或域名,则邮件服务器将拒绝接受该邮件;如果邮件来自白名单中的 IP 地址或域名,则邮件服务器将允许接受该邮件。 ...
5. **多策略支持**:支持多种过滤策略,如白名单、黑名单、IP段过滤等。 6. **日志记录**:自动记录被拒绝或允许的IP请求,便于监控和分析。 使用`laravel-ip-filter`,开发者可以更高效、安全地管理Laravel应用的...
《云黑系统 浪客云黑3.0 黑名单系统PHP源码》是一款基于PHP开发的黑名单管理系统,主要用于帮助网站或网络服务提供商过滤和管理潜在的恶意IP、用户名、邮箱等黑名单信息,以提高网络安全性和用户体验。在这个系统中...
☆ IP白名单,白名单终端IP可以访问除URL黑名单中的所有原始内容; ☆ 黑名单优先级高于白名单。 8、Gzip过滤支持 ☆ 开启【Gzip过滤】后,将可以过滤经过Gzip压缩的网页。 9、日志分析 ☆ 每天一个日志文件,...
IP白名单,白名单终端IP可以访问除URL黑名单中的所有原始内容; 黑名单优先级高于白名单。 8、Gzip过滤支持 开启【Gzip过滤】后,将可以过滤经过Gzip压缩的网页。 9、日志分析 每天一个日志文件,详细的日志分析,...
5. **黑名单管理**:黑名单可以存储在数据库中,方便添加、删除和查询IP地址。Laravel的Eloquent ORM使得与数据库交互变得简单。你可能需要一个`IpBlacklist`模型来代表黑名单表,并提供相应的CRUD操作。 6. **日志...
5. **IP黑名单/白名单**:在网站安全策略中,可以建立IP黑名单或白名单,限制特定IP的访问。这通常涉及到`array_search()`或`in_array()`函数,检查IP是否存在于预定义的列表中。 6. **IP路由与网络掩码**:在更...
1. **URL黑名单过滤**:PHP代码中包含了广告服务器的URL黑名单列表,通过比对请求的URL,如果命中黑名单,则阻止广告加载。这一步依赖于高效的字符串匹配算法,如KMP或Boyer-Moore,以快速定位黑名单中的模式。 2. ...
整了个 API 系统,支持文本和 JSON 输出添加更多的 Bootstrap 图标,更美观添加随机背景图(以前就有只不过没放图片)主页公告下面添加一个 IP 访问信息,可以分辨 ipv4 和 v6 公告下面添加一言添加安全系统,防止 ...
黑白名单主要是针对垃圾邮件过滤(SPAM),只有开启了允许/阻止程序列表和名单列表的功能,邮件服务器才能自动对收发邮件进行相应的拒绝或者标记操作。 二、允许/阻止程序 允许/阻止程序是国际上第三方较为知名的...
这两个表可能分别存储了允许访问的IP白名单和禁止访问的IP黑名单。通常,这种系统会有一个配置界面或后台管理系统,管理员可以在这里添加、删除或修改IP地址列表。表的结构可能包含IP地址、备注、创建时间等字段,...
在实际项目中,"ip"文件可能是用来存储IP地址的列表,用于黑名单过滤、访问统计等用途。可以通过读取该文件,与访问者IP进行对比,实现特定功能。 总结来说,PHP IP地址查询涉及到获取、验证、转换、分类、地理位置...
2. **IP黑白名单**:防火墙可能有一个功能,即根据IP地址对访问者进行分类,允许或拒绝某些IP的请求。这可以通过PHP的`$_SERVER['REMOTE_ADDR']`全局变量获取客户端IP,然后与维护的IP列表进行比较。 3. **速率限制...
总结,Laravel 4.1的IP防火墙功能主要依赖于中间件机制,通过自定义中间件可以轻松地实现IP白名单和黑名单管理,从而提高应用的安全性。随着Laravel版本的更新,其安全特性也得到了进一步增强,但理解这一基础概念...
6、限制指定IP地址(IP地址黑名单)不能访问服务器,以及代理服务器访问限制等; 7、在线观看IIS中运行的ASP/PHP脚本执行情况和执行时间,方便排查有问题的IIS网站中ASP/PHP脚本; 8、IIS强迫性广告功能(在网页...
6、限制指定IP地址(IP地址黑名单)不能访问服务器,以及代理服务器访问限制等; 7、在线观看IIS中运行的ASP/PHP脚本执行情况和执行时间,方便排查有问题的IIS网站中ASP/PHP脚本; 8、IIS强迫性广告功能(在网页...
2. **黑名单机制**:防红网可能维护一个黑名单,其中包含已知的恶意IP、域名或URL模式。当新的请求与黑名单匹配时,系统将拒绝或重定向这些请求。 3. **验证码**:为了防止自动化程序的攻击,防红网可能会采用...
在本文中,我们将深入探讨"Laravel开发-antonioribeiro-firewall"这一开源项目,它是一个专门为Laravel 4.1框架设计的IP过滤工具,用于实现IP白名单和黑名单功能。Laravel作为PHP最流行的Web开发框架之一,提供了...
3. **规则文件**:定义了哪些行为被视为安全或不安全,例如黑名单或白名单的IP地址,特定的HTTP请求头或参数。 4. **文档**:说明如何使用防火墙,配置选项,以及常见问题解答。 5. **示例配置**:帮助用户快速设置...
此软件通过一系列智能策略和技术手段,包括但不限于IP黑白名单管理、流量清洗、异常行为检测等,来预防和应对这些问题。 首先,IP黑白名单管理是防御机制的核心之一。通过收集和分析访问者的IP地址,软件能识别并...