Вход Регистрация
Файл: vendor/geoip2/geoip2/src/Util.php
Строк: 36
<?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
     */
    
public static function cidr(string $ipAddressint $prefixLen): string
    
{
        
$ipBytes inet_pton($ipAddress);
        
$networkBytes str_repeat(""strlen($ipBytes));

        
$curPrefix $prefixLen;
        for (
$i 0$i strlen($ipBytes) && $curPrefix 0$i++) {
            
$b $ipBytes[$i];
            if (
$curPrefix 8) {
                
$shiftN $curPrefix;
                
$b chr(0xFF & (ord($b) >> $shiftN) << $shiftN);
            }
            
$networkBytes[$i] = $b;
            
$curPrefix -= 8;
        }

        
$network inet_ntop($networkBytes);

        return 
"$network/$prefixLen";
    }
}
Онлайн: 1
Реклама