← Back
Editing: Ipv4Strategy.php
<?php declare(strict_types=1); /** * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\SuspiciousLogin\Service; use OCA\SuspiciousLogin\Db\LoginAddressAggregatedMapper; use OCA\SuspiciousLogin\Service\MLP\Config; use function array_map; use function explode; class Ipv4Strategy extends AClassificationStrategy { public static function getTypeName(): string { return 'ipv4'; } public function hasSufficientData(LoginAddressAggregatedMapper $loginAddressMapper, int $validationDays): bool { return $loginAddressMapper->hasSufficientIpV4Data($validationDays); } public function findHistoricAndRecent(LoginAddressAggregatedMapper $loginAddressMapper, int $validationThreshold, int $maxAge): array { return $loginAddressMapper->findHistoricAndRecentIpv4($validationThreshold, $maxAge); } public function generateRandomIpVector(): array { $ip = $this->generateRandomIp(); $splitIp = explode('.', $ip); return $this->numStringsToBitArray($splitIp, 10, 8); } protected function ipToVec(string $ip): array { return $this->numStringsToBitArray(explode('.', $ip), 10, 8); } public function generateRandomIp(): string { return implode('.', array_map(function (int $index) { return random_int(0, 255); }, range(0, 3))); } public function getSize(): int { return 16 + 32; } public function getDefaultMlpConfig(): Config { return Config::default(); } }
Save File
Cancel