function cidrv4Mask
cidrv4Mask(prefixLength: PrefixLengthv4): Maskv4

Creates a network mask from an IPv4 prefix length.

The prefix length must be between 0 and 32 (inclusive).

Examples

Creating masks

import { assertEquals } from "@std/assert";
import { cidrv4Mask } from "@hertzg/ip/cidrv4";

assertEquals(cidrv4Mask(24), 0xFFFFFF00);
assertEquals(cidrv4Mask(16), 0xFFFF0000);
assertEquals(cidrv4Mask(8), 0xFF000000);
assertEquals(cidrv4Mask(32), 0xFFFFFFFF);
assertEquals(cidrv4Mask(0), 0);

Error handling

import { assertThrows } from "@std/assert";
import { cidrv4Mask } from "@hertzg/ip/cidrv4";

assertThrows(() => cidrv4Mask(-1), RangeError);
assertThrows(() => cidrv4Mask(33), RangeError);

Parameters

prefixLength: PrefixLengthv4

The CIDR prefix length (0-32)

Return Type

The network mask as a 32-bit unsigned integer

Throws

RangeError

If the prefix length is out of range

cidrv4Mask(cidr: Cidrv4): Maskv4

Returns the network mask of an IPv4 CIDR block.

A MaskedCidrv4 gives back the mask it stores, as is; a PrefixedCidrv4 has its prefix length shifted into one. Total over every block, which is what lets every cidrv4* operation go through it; the inverse, cidrv4PrefixLength, is the partial one.

Examples

Both dialects yield the same mask

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

assertEquals(cidrv4Mask(parseCidrv4("192.168.1.0/24")), 0xFFFFFF00);
assertEquals(cidrv4Mask({ address: 3232235776, mask: 0xFFFFFF00 }), 0xFFFFFF00);

A stored mask comes back untouched, contiguous or not

import { assertEquals } from "@std/assert";
import { cidrv4Mask } from "@hertzg/ip/cidrv4";

assertEquals(cidrv4Mask({ address: 0, mask: 0xFF00FF00 }), 0xFF00FF00);

Parameters

cidr: Cidrv4

The CIDR block

Return Type

The network mask as a 32-bit unsigned integer

Throws

RangeError

If a prefixed block's prefix length is out of range

cidrv4Mask(cidrOrPrefixLength: Cidrv4 | PrefixLengthv4): Maskv4

Returns the network mask of an IPv4 CIDR block or prefix length.

Parameters

cidrOrPrefixLength: Cidrv4 | PrefixLengthv4

A Cidrv4 block or a prefix length (0-32)

Return Type

The network mask as a 32-bit unsigned integer

Throws

RangeError

If a prefix length is out of range