deno.com
class BlockList

The BlockList object can be used with some network APIs to specify rules for disabling inbound or outbound access to specific IP addresses, IP ranges, or IP subnets.

Properties #

#rules: readonly string[]

The list of rules added to the blocklist.

Methods #

#addAddress(
address: string,
type?: IPVersion,
): void

Adds a rule to block the given IP address.

#addAddress(address: SocketAddress): void
#addRange(
start: string,
end: string,
type?: IPVersion,
): void

Adds a rule to block a range of IP addresses from start (inclusive) toend (inclusive).

#addSubnet(
prefix: number,
): void

Adds a rule to block a range of IP addresses specified as a subnet mask.

#addSubnet(
net: string,
prefix: number,
type?: IPVersion,
): void
#check(address: SocketAddress): boolean

Returns true if the given IP address matches any of the rules added to theBlockList.

const blockList = new net.BlockList();
blockList.addAddress('123.123.123.123');
blockList.addRange('10.0.0.1', '10.0.0.10');
blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6');

console.log(blockList.check('123.123.123.123'));  // Prints: true
console.log(blockList.check('10.0.0.3'));  // Prints: true
console.log(blockList.check('222.111.111.222'));  // Prints: false

// IPv6 notation for IPv4 addresses works:
console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')); // Prints: true
console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Prints: true
#check(
address: string,
type?: IPVersion,
): boolean