Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
<?php

> declare(strict_types=1); namespace GeoIp2; >
class Util { /** * This returns the network in CIDR notation for the given IP and prefix * length. This is for internal use only. * * @internal * @ignore
< * < * @param mixed $ipAddress < * @param mixed $prefixLen
*/
< public static function cidr($ipAddress, $prefixLen)
> public static function cidr(string $ipAddress, int $prefixLen): string
{ $ipBytes = inet_pton($ipAddress); $networkBytes = str_repeat("\0", \strlen($ipBytes)); $curPrefix = $prefixLen; for ($i = 0; $i < \strlen($ipBytes) && $curPrefix > 0; $i++) { $b = $ipBytes[$i]; if ($curPrefix < 8) { $shiftN = 8 - $curPrefix; $b = \chr(0xFF & (\ord($b) >> $shiftN) << $shiftN); } $networkBytes[$i] = $b; $curPrefix -= 8; } $network = inet_ntop($networkBytes); return "$network/$prefixLen"; } }