cidrv6Contains(cidr: Cidrv6,address: bigint): boolean
Checks if an IPv6 address is contained within a CIDR block.
Basic contains check
Basic contains check
import { assert, assertEquals } from "@std/assert"; import { cidrv6Contains, parseCidrv6 } from "@hertzg/ip/cidrv6"; import { parseAddressv6 } from "@hertzg/ip/addressv6"; const cidr = parseCidrv6("2001:db8::/32"); assert(cidrv6Contains(cidr, parseAddressv6("2001:db8::").address)); assert(cidrv6Contains(cidr, parseAddressv6("2001:db8::1").address)); assert(cidrv6Contains(cidr, parseAddressv6("2001:db8:ffff:ffff:ffff:ffff:ffff:ffff").address)); assertEquals(cidrv6Contains(cidr, parseAddressv6("2001:db9::1").address), false); assertEquals(cidrv6Contains(cidr, parseAddressv6("2001:db7:ffff:ffff:ffff:ffff:ffff:ffff").address), false);
IP assignment workflow
IP assignment workflow
import { assert } from "@std/assert"; import { cidrv6Contains, cidrv6FirstAddress, cidrv6LastAddress, parseCidrv6, } from "@hertzg/ip/cidrv6"; const cidr = parseCidrv6("fd00::/120"); // 256 IPs let currentIp = cidrv6FirstAddress(cidr) + 1n; const assigned: bigint[] = []; while (currentIp < cidrv6LastAddress(cidr)) { assert(cidrv6Contains(cidr, currentIp)); assigned.push(currentIp); currentIp = currentIp + 1n; }
cidr: Cidrv6
The CIDR block to check against