- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的脚本会打开两个文件:whitelist.txt 和 blacklist.txt,其中包含 IP 地址。
我想将 blacklist.txt 中不存在于 whitelist.txt 中的所有 ip 实例添加到变量中。
此脚本最多包含 2 个通配符。
它现在运行 37 分钟,我希望它能更快。
$blacklist = file_get_contents("blacklist.txt");
$whitelist = file_get_contents("whitelist.txt");
$black_ips = explode("\n", $blacklist);
$white_ips = explode("\n", $whitelist);
$wildcard = array();
for($i = 0; $i < 256; $i++) {
$wildcard[] = $i;
}
foreach($black_ips as $bkey => $black) {
if(stristr($black, ".")) {
foreach ($white_ips as $wkey => $white) {
$count = substr_count($white, '*');
if($count) {
switch($count){
case 1:
foreach ($wildcard as $i) {
if(substr($white, 0, strlen($white) - 1) . $i == $black){
continue 4;
}
}
break;
case 2:
foreach ($wildcard as $i) {
foreach ($wildcard as $k) {
if(substr($white, 0, strlen($white) - 3) . $i . '.' . $k == $black){
continue 5;
}
}
}
break;
}
}
else if($black == $white) {
continue 2;
}
}
$nginxdeny .= "deny " . $black . ";\n";
}
}
最佳答案
这段代码是否满足您的需求?
$white = array(
'192.168.*.*',
'10.10.10.*',
);
$black = array(
'192.168.8.8',
'10.10.10.3',
'10.10.1.2',
);
$patterns = array();
foreach ($white as $subnetwork) {
$patterns[] = str_replace(array('.', '*'), array('\\.', '(\d{1,3})'), $subnetwork);
}
$notMatched = array();
foreach ($black as $ip) {
foreach ($patterns as $pattern) {
if (preg_match("/^{$pattern}$/", $ip)) {
continue 2;
}
}
$notMatched[] = $ip;
}
var_dump($notMatched);
输出:
array(1) {
[0]=>
string(9) "10.10.1.2"
}
关于php - 提高我的 ip 黑名单-白名单脚本的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26948977/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
你咋不上天 傲娇的野狗 最霸气的方式 野权少女. 黑名单° 一个酷girl. 怪味野痞 小子,你的高傲呢。 未来、来不了 看尽事态的炎凉 灵魂傀儡 愿你安好 倾他
我们有一组用户 CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(254) NOT
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我想知道是否有一种方法可以在 Android(考虑 2.1 及更高版本)上过滤(阻止)来电。我找到了使用反射的解决方案,但它似乎不是非常干净可靠的解决方案。是否有任何标准或谷歌推荐的方法来做到这一点?
作为在非常大的代码库中永久修复 XSS 漏洞的同时减轻主要风险的临时快速修复,我正在寻找一个预先存在的 XSS 预防黑名单,它可以合理地防止 XSS . 最好是一组正则表达式。我知道有很多用于测试和冒
有没有办法在我的应用程序中的每个组件被挂载之前定义一个函数来 Hook ? 这个想法是,如果一个组件被列入黑名单,它根本就不会挂载。 为了向后兼容,解决方案必须不修改组件,并且应该在生产中运行(因此重
有没有办法,例如一个 Maven 插件,它可以获取不需要的/黑名单依赖项(直接和传递)的列表,如果它检测到列出的依赖项之一,则构建失败? 在我的项目中,我们非常希望摆脱 Apache Commons
这是我的persistConfig 和store 代码,我想为tracking 添加blacklist,但没有对于所有跟踪状态,但仅针对 tracking.checkingOut、tracking.c
我正在尝试启动Kafka使用者,但显示以下错误: $ bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic Hello-Kaf
此处解释的 IP 白名单/黑名单示例 https://kubernetes.io/docs/tutorials/services/source-ip/使用 source.ip 属性。但是,在 kube
一个经典的例子是: schema = Joi.object().keys({ my_string: Joi.string().valid("myString").required() });
我想检查用户在我拥有的富 HTML 编辑器中使用的 HTML 标签。我不确定如何在 C# 中执行此操作。 我应该使用正则表达式吗?我应该将哪些 HTML 标记列入黑名单/白名单? 最佳答案 一个简单的
我正在编写一个 Django 应用程序,用于跟踪允许哪些电子邮件地址将内容发布到用户帐户。用户可以根据需要将地址列入白名单和黑名单。 任何未指定的地址都可以按消息处理或仅默认为白名单或黑名单(同样由用
情况: 我有一个用户 模型,它需要通过列入黑名单的电子邮件地址列表进行验证。列入黑名单的电子邮件地址位于名为黑名单 的额外模型中 模型/用户.rb: class User "E-Mail")
我的脚本会打开两个文件:whitelist.txt 和 blacklist.txt,其中包含 IP 地址。 我想将 blacklist.txt 中不存在于 whitelist.txt 中的所有 ip
我正在寻找一种在 Apache 2.4.x 中将 IP 地址列入黑名单的简单方法。我的网站将尝试非法操作的 IP 地址记录到文本文件中。我想在 Apache 中使用这个文本文件来拒绝对这个 ip 列表
在我的基础项目中,我使用 JasperReports 的依赖项,它的 pom.xml 中具有不存在的存储库声明。当我运行每个 Maven 命令时,都会有依赖项在这个 Jasper 存储库中寻找 com
我一直在尝试在 PHP 中实现一种 IP 黑名单,我将失败的登录尝试存储到具有以下架构的 MySQL 表中: CREATE TABLE blacklist( `ip_address` VARC
是的,我知道有 Voter tutorial in cookbook .但我正在寻找稍微不同的东西。我需要两层不同的黑名单: 拒绝某些 IP 访问整个网站 拒绝某些IP登录 我写了 Voter 检查用
我是一名优秀的程序员,十分优秀!