What is cidr-regex?
The 'cidr-regex' npm package provides regular expressions for matching and validating CIDR (Classless Inter-Domain Routing) notation IP addresses, both IPv4 and IPv6. This is useful for network configuration, validation, and parsing tasks.
What are cidr-regex's main functionalities?
Match CIDR Notation
This feature allows you to check if a given string matches the CIDR notation for IPv4 or IPv6 addresses.
const cidrRegex = require('cidr-regex');
const ip = '192.168.0.1/24';
const isMatch = cidrRegex().test(ip);
console.log(isMatch); // true
Extract CIDR Notation
This feature allows you to extract all CIDR notations from a given string.
const cidrRegex = require('cidr-regex');
const text = 'Here is a CIDR: 192.168.0.1/24 and another one: 10.0.0.0/8';
const matches = text.match(cidrRegex());
console.log(matches); // ['192.168.0.1/24', '10.0.0.0/8']
IPv4 and IPv6 Support
This feature provides separate methods for matching IPv4 and IPv6 CIDR notations.
const cidrRegex = require('cidr-regex');
const ipv4 = '192.168.0.1/24';
const ipv6 = '2001:db8::/32';
console.log(cidrRegex.v4().test(ipv4)); // true
console.log(cidrRegex.v6().test(ipv6)); // true
Other packages similar to cidr-regex
ip-cidr
The 'ip-cidr' package provides utilities for parsing, manipulating, and validating CIDR notations. It offers more comprehensive functionality compared to 'cidr-regex', including methods for subnet calculations and IP range generation.
cidr-js
The 'cidr-js' package focuses on CIDR block calculations and IP address manipulations. It provides methods for checking if an IP is within a CIDR range, splitting CIDR blocks, and more. It is more feature-rich in terms of network calculations compared to 'cidr-regex'.
netmask
The 'netmask' package is used for IP address and network mask calculations. It allows for parsing and manipulating IP ranges and CIDR blocks, offering more advanced network-related functionalities than 'cidr-regex'.
cidr-regex
Regular expression for matching CIDR (Classless Inter-Domain Routing)
Install
$ npm install --save cidr-regex
Usage
import cidr from 'cidr-regex'
import { cidrv4, cidrv6 } from 'cidr-regex'
var cidrv4 = require('cidr-regex').cidrv4
var cidrv6 = require('cidr-regex').cidrv6
cidr.test('18.101.25.153/24')
cidrv4.test('999.999.999.999/12')
cidrv6.test('fe80:0000:0000:0000:0204:61ff:fe9d:f156')
cidrv6.test('fe80:0000:0000:0000:0204:61ff:fe9d:f156/a')
API
cidr
A regex for matching CIDR IPv4
cidrv4
A regex for matching CIDR IPv4
cidrv6
A regex for matching CIDR IPv6
Other notes
This was inspired by npm package ip-regex. I've used the same samples on unit testing for IPv4 and modified for CIDR testing. Other IPv6 test cases were taken from IPv6 Regex by Dartware, LLC (licensed under CC-BY-SA 3.0).
License
MIT © Felipe Apostol