public function expand(): IP
    {
        $result = clone $this;

        if ($this->isIPv6) {
            $bytes = unpack('n*', inet_pton($this->address));

            $result->address = implode(
                ':',
                array_map(
                    function ($b) {
                        return sprintf('%04x', $b);
                    },
                    $bytes
                )
            );
        }

        return $result;
    }