Airship\Engine\Security\AirBrake::getIPv6Subnet PHP Method

getIPv6Subnet() public method

Return the given subnet for an IPv6 address and mask bits
public getIPv6Subnet ( string $ip, integer $maskBits = 48 ) : string
$ip string
$maskBits integer
return string
    public function getIPv6Subnet(string $ip, int $maskBits = 48) : string
    {
        $binary = \inet_pton($ip);
        for ($i = 128; $i > $maskBits; $i -= 8) {
            $j = \intdiv($i, 8) - 1;
            $k = (int) \min(8, $i - $maskBits);
            $mask = 0xff - (2 ** $k - 1);
            $int = \unpack('C', $binary[$j]);
            $binary[$j] = \pack('C', $int[1] & $mask);
        }
        return \inet_ntop($binary) . '/' . $maskBits;
    }