feat: optimize cidr processing

This commit is contained in:
Rekryt
2024-10-29 16:57:31 +03:00
parent 0dd2a3681b
commit 2367d4a1d0
2 changed files with 18 additions and 12 deletions

View File

@@ -16,15 +16,18 @@ class IP4Helper {
continue;
}
async(function () use ($ip, $i, $count, &$results) {
if (self::isInRange($ip, $results)) {
return;
}
if (CIDRStorage::getInstance()->has($ip)) {
$searchArray = CIDRStorage::getInstance()->get($ip);
$results = array_merge($results, self::trimCIDRs($searchArray));
App::getLogger()->debug($ip . ' -> ' . json_encode($searchArray), [$i + 1 . '/' . $count]);
return;
}
if (self::isInRange($ip, $results)) {
App::getLogger()->debug($ip . ' -> ' . json_encode($searchArray), [
$i + 1 . '/' . $count,
'from cache',
]);
return;
}
@@ -72,7 +75,7 @@ class IP4Helper {
CIDRStorage::getInstance()->set($ip, $searchArray);
$results = array_merge($results, self::trimCIDRs($searchArray));
App::getLogger()->debug($ip . ' -> ' . json_encode($searchArray), [$i + 1 . '/' . $count]);
App::getLogger()->debug($ip . ' -> ' . json_encode($searchArray), [$i + 1 . '/' . $count, 'found']);
} else {
App::getLogger()->error($ip . ' -> CIDR not found', [$i + 1 . '/' . $count]);
}

View File

@@ -16,15 +16,18 @@ class IP6Helper {
continue;
}
async(function () use ($ip, $i, $count, &$results) {
if (self::isInRange($ip, $results)) {
return;
}
if (CIDRStorage::getInstance()->has($ip)) {
$searchArray = CIDRStorage::getInstance()->get($ip);
$results = array_merge($results, self::trimCIDRs($searchArray));
App::getLogger()->debug($ip . ' -> ' . json_encode($searchArray), [$i + 1 . '/' . $count]);
return;
}
if (self::isInRange($ip, $results)) {
App::getLogger()->debug($ip . ' -> ' . json_encode($searchArray), [
$i + 1 . '/' . $count,
'from cache',
]);
return;
}
@@ -72,7 +75,7 @@ class IP6Helper {
CIDRStorage::getInstance()->set($ip, $searchArray);
$results = array_merge($results, self::trimCIDRs($searchArray));
App::getLogger()->debug($ip . ' -> ' . json_encode($searchArray), [$i + 1 . '/' . $count]);
App::getLogger()->debug($ip . ' -> ' . json_encode($searchArray), [$i + 1 . '/' . $count, 'found']);
} else {
App::getLogger()->error($ip . ' -> CIDR not found', [$i + 1 . '/' . $count]);
}