function cidrv4ContainsCidr
cidrv4ContainsCidr(
outer: Cidrv4,
inner: Cidrv4
): boolean

Checks if one IPv4 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 { cidrv4ContainsCidr, parseCidrv4 } from "@hertzg/ip/cidrv4";

assert(cidrv4ContainsCidr(parseCidrv4("10.0.0.0/8"), parseCidrv4("10.1.0.0/16")));
assert(cidrv4ContainsCidr(parseCidrv4("192.168.0.0/16"), parseCidrv4("192.168.1.0/24")));
assertEquals(cidrv4ContainsCidr(parseCidrv4("192.168.1.0/24"), parseCidrv4("192.168.0.0/16")), false);

Equal CIDRs contain each other

import { assert } from "@std/assert";
import { cidrv4ContainsCidr, parseCidrv4 } from "@hertzg/ip/cidrv4";

const cidr = parseCidrv4("10.0.0.0/24");
assert(cidrv4ContainsCidr(cidr, cidr));

/0 contains everything

import { assert } from "@std/assert";
import { cidrv4ContainsCidr, parseCidrv4 } from "@hertzg/ip/cidrv4";

const all = parseCidrv4("0.0.0.0/0");
assert(cidrv4ContainsCidr(all, parseCidrv4("192.168.1.0/24")));
assert(cidrv4ContainsCidr(all, parseCidrv4("10.0.0.1/32")));

Parameters

outer: Cidrv4

The CIDR block that may contain the other

inner: Cidrv4

The CIDR block that may be contained

Return Type

boolean

true if every address in inner is within outer