function cidrv6ContainsCidr
cidrv6ContainsCidr(
outer: Cidrv6,
inner: Cidrv6
): boolean

Checks if one IPv6 CIDR block fully contains another.

Returns true when every address in inner is also in outer. This is the case when outer has a shorter-or-equal prefix and both network addresses agree under the outer mask.

Examples

Outer block contains inner block

import { assert, assertEquals } from "@std/assert";
import { cidrv6ContainsCidr, parseCidrv6 } from "@hertzg/ip/cidrv6";

assert(cidrv6ContainsCidr(parseCidrv6("2001:db8::/32"), parseCidrv6("2001:db8:1::/48")));
assert(cidrv6ContainsCidr(parseCidrv6("fd00::/8"), parseCidrv6("fd00::/120")));
assertEquals(cidrv6ContainsCidr(parseCidrv6("2001:db8:1::/48"), parseCidrv6("2001:db8::/32")), false);

Equal CIDRs contain each other

import { assert } from "@std/assert";
import { cidrv6ContainsCidr, parseCidrv6 } from "@hertzg/ip/cidrv6";

const cidr = parseCidrv6("2001:db8::/64");
assert(cidrv6ContainsCidr(cidr, cidr));

/0 contains everything

import { assert } from "@std/assert";
import { cidrv6ContainsCidr, parseCidrv6 } from "@hertzg/ip/cidrv6";

const all = parseCidrv6("::/0");
assert(cidrv6ContainsCidr(all, parseCidrv6("2001:db8::/32")));
assert(cidrv6ContainsCidr(all, parseCidrv6("::1/128")));

Parameters

outer: Cidrv6

The CIDR block that may contain the other

inner: Cidrv6

The CIDR block that may be contained

Return Type

boolean

true if every address in inner is within outer