ip_cidr_contains function

Applies to: check marked yes Databricks Runtime 18.2 and above

Returns TRUE if an IP address or CIDR block is contained within another CIDR block, FALSE otherwise.

Syntax

ip_cidr_contains ( cidr, needle )

Arguments

  • cidr: A STRING or BINARY value representing a valid CIDR block.
  • needle: A STRING or BINARY value representing a valid IP address or CIDR block.

Mixed input types (STRING and BINARY) are permitted.

Returns

A BOOLEAN.

Returns TRUE if needle is contained within cidr, FALSE otherwise.

The function returns NULL if either argument is NULL.

Error conditions

Examples

> SELECT ip_cidr_contains('192.168.1.0/24', '192.168.2.1');
  false

> SELECT ip_cidr_contains('2001:db8::/32', '2001:db8::1');
  true

> SELECT ip_cidr_contains('::ffff:192.168.1.0/120', '192.168.1.100');
  true

> SELECT ip_cidr_contains(X'C0A8010018', X'C0A80164');
  true

> SELECT ip_cidr_contains('192.168.1.0/24', X'C0A80164');
  true

> SELECT ip_cidr_contains(NULL, '192.168.1.1');
  NULL

> SELECT ip_cidr_contains('192.168.1.0/24', NULL);
  NULL

> SELECT ip_cidr_contains(NULL, NULL);
  NULL

> SELECT ip_cidr_contains('invalid', '192.168.1.1');
  Error: INVALID_CIDR_BLOCK