cidrContainsCidr<T extends Cidr>(): boolean
Checks if one CIDR block fully contains another.
Dispatches to cidrv4ContainsCidr or cidrv6ContainsCidr based on the address type. Throws TypeError when mixing IPv4 and IPv6 CIDRs.
IPv4 containment
IPv4 containment
import { assert, assertEquals } from "@std/assert"; import { cidrContainsCidr, parseCidr } from "@hertzg/ip/cidr"; assert(cidrContainsCidr(parseCidr("10.0.0.0/8"), parseCidr("10.1.0.0/16"))); assertEquals(cidrContainsCidr(parseCidr("10.1.0.0/16"), parseCidr("10.0.0.0/8")), false);
IPv6 containment
IPv6 containment
import { assert, assertEquals } from "@std/assert"; import { cidrContainsCidr, parseCidr } from "@hertzg/ip/cidr"; assert(cidrContainsCidr(parseCidr("2001:db8::/32"), parseCidr("2001:db8:1::/48"))); assertEquals(cidrContainsCidr(parseCidr("2001:db8:1::/48"), parseCidr("2001:db8::/32")), false);
Mixed versions throw TypeError
Mixed versions throw TypeError
import { assertThrows } from "@std/assert"; import { cidrContainsCidr, parseCidr } from "@hertzg/ip/cidr"; assertThrows( () => cidrContainsCidr(parseCidr("10.0.0.0/8"), parseCidr("2001:db8::/32")), TypeError, ); assertThrows( () => cidrContainsCidr(parseCidr("2001:db8::/32"), parseCidr("10.0.0.0/8")), TypeError, );
T extends Cidr