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

View File

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