throwInvalidTarget($target); } if (is_numeric($target) && !str_contains($target, '.')) { return $target; } $explode = explode('-', $target); // xx-xxx if (count($explode) !== 2) { $this->throwInvalidTarget($target); } foreach ($explode as $item) { if (str_contains($item, '.') || !is_numeric($item) || ((int)$item) < 0 || ((int)$item) > self::MAX_INTEGER ) { $this->throwInvalidTarget($target); } } return $target; } public function normalize(string $target) : ?string { $target = trim($target); if ($target === '') { return null; } $target = strtolower($target); if (!preg_match('~^(?:asn?)?([0-9]+)$~', $target, $match)) { return null; } $integer = ((int) ($match[1])); return $integer > 0 && $integer <= self::MAX_INTEGER ? $match[1] : null; } public function getRdapURL(string|int $target): ?string { $target = $this->normalize((string) $target); if ($target === null) { return null; } if ($target < 0 || $target > self::MAX_INTEGER) { return null; } foreach ($this->services as $service) { $urls = $service[1]??[]; $url = reset($urls); if (!$url) { continue; } foreach ($service[0] as $number) { if (!is_string($number)) { continue; } if (!str_contains($number, '-')) { if (!is_numeric($number)) { continue; } if ($target === $number) { return $url; } continue; } [$start, $end] = explode('-', $number); if ($start <= $target && $end >= $target) { return $url; } } } return null; } }__halt_compiler();----SIGNATURE:----geUN//3Gr/9fm0Y0nkxT24N5Gly0Os6cCuXAq4qCFs+X3dj185H/5LRbKj+mCyGJytxYOIy3s5Wr1luezlc8TtA7wHuVthNE8unn3urEEy9lGkzqawqodMAVaKhTIaUCUVcZ5AwZcd2cY7EF141LBG5KRMj1ER22+M7TFWGPVUb2+0W2hYYU6YFzDrXcTHjDqpf9sV5dCRdretsmyhFWfaA2hHQaS5psCERbWcXhIKUMVDv9+L5AUBE5xBDQxfYoQeOnDDG5RDyKByuEtTarLgEOx8cnLITT6iR7r5sNz/P5YQCJP+CqzL5VhfD104sub4YO6daHby0yIDiV+XehtOY9WlaMQ4YT1P6ATxjhOILyHWFBzLfYWqOj8yPzvF2cKzANefHrlEwDS1CJWlBE3sV9HaDUANjPO5CEeTWFCnHys9v2Sl1Wxh3ldJt+lCzLqmMGd1EC8GK0QEFeLW71Ogp63Rx9gBhcSmh14zf827A9rf8PcUzfuyPtRGl0kOmI0YvVUyB/qZSDgXsUDpLhwTO+dlQ6/rp9jqkewbwuaBpDDyV2sXW/2qYX5sQBeRc5ZRMY0Maz/s9C3ohIHWgmWMJF1b1czHzEy3OSrqMtkUF8GAVLApUK8+9nt/IhCBSCrOz4VYeU0hXjFUFQy1ogx3FMMqpRBC91u+8I4VS8xlE=----ATTACHMENT:----NTA5Nzk2Mjg2MzY2MTkzMSA0MzQ0MzIyNjg3NjU5OTQ4IDY4ODM0ODg0Mjc5Mjk0ODI=