cidrv4Contains(cidr: Cidrv4,address: number): boolean
Checks if an IPv4 address is contained within a CIDR block.
Basic contains check
Basic contains check
import { assert, assertEquals } from "@std/assert"; import { cidrv4Contains, parseCidrv4 } from "@hertzg/ip/cidrv4"; import { parseAddressv4 } from "@hertzg/ip/addressv4"; const cidr = parseCidrv4("192.168.1.0/24"); assert(cidrv4Contains(cidr, parseAddressv4("192.168.1.0").address)); assert(cidrv4Contains(cidr, parseAddressv4("192.168.1.100").address)); assert(cidrv4Contains(cidr, parseAddressv4("192.168.1.255").address)); assertEquals(cidrv4Contains(cidr, parseAddressv4("192.168.2.1").address), false); assertEquals(cidrv4Contains(cidr, parseAddressv4("192.168.0.255").address), false);
IP assignment workflow
IP assignment workflow
import { assert } from "@std/assert"; import { cidrv4BroadcastAddress, cidrv4Contains, cidrv4NetworkAddress, parseCidrv4, } from "@hertzg/ip/cidrv4"; const cidr = parseCidrv4("10.0.0.0/29"); let currentIp = cidrv4NetworkAddress(cidr) + 1; const assigned: number[] = []; while (currentIp < cidrv4BroadcastAddress(cidr)) { assert(cidrv4Contains(cidr, currentIp)); assigned.push(currentIp); currentIp = currentIp + 1; }
cidr: Cidrv4
The CIDR block to check against