Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
The ip-cidr npm package provides utilities for working with IP addresses and CIDR (Classless Inter-Domain Routing) notations. It allows you to perform various operations such as checking if an IP address is within a CIDR range, converting CIDR notations to IP ranges, and more.
Check if an IP is within a CIDR range
This feature allows you to check if a given IP address is within a specified CIDR range. In this example, '192.168.1.5' is checked against the CIDR range '192.168.1.0/24'.
const IPCIDR = require('ip-cidr');
const cidr = new IPCIDR('192.168.1.0/24');
const isInRange = cidr.contains('192.168.1.5');
console.log(isInRange); // true
Convert CIDR to IP range
This feature converts a CIDR notation to its corresponding IP range. In this example, '192.168.1.0/24' is converted to the range ['192.168.1.0', '192.168.1.255'].
const IPCIDR = require('ip-cidr');
const cidr = new IPCIDR('192.168.1.0/24');
const range = cidr.toRange();
console.log(range); // ['192.168.1.0', '192.168.1.255']
Get the first and last IP addresses in a CIDR range
This feature retrieves the first and last IP addresses within a given CIDR range. In this example, '192.168.1.0/24' is used to get the first and last IP addresses.
const IPCIDR = require('ip-cidr');
const cidr = new IPCIDR('192.168.1.0/24');
const firstIp = cidr.start({ type: 'addressObject' });
const lastIp = cidr.end({ type: 'addressObject' });
console.log(firstIp); // { address: '192.168.1.0', subnetMask: 24 }
console.log(lastIp); // { address: '192.168.1.255', subnetMask: 24 }
The 'ip' package provides a set of utilities for working with IP addresses, including parsing, formatting, and converting between different representations. It also supports CIDR notation but is more general-purpose compared to ip-cidr.
The 'cidr-js' package offers similar functionalities to ip-cidr, such as checking if an IP is within a CIDR range and converting CIDR to IP ranges. It is a lightweight alternative with a focus on CIDR operations.
The 'netmask' package is another utility for working with IP addresses and subnet masks. It provides methods for parsing and manipulating IP ranges and CIDR notations, similar to ip-cidr.
npm install ip-cidr
Module for working with CIDR (v4, v6). Based on ip-address. Since v4+ using javascript BigInt for big numbers handling.
import IPCIDR from 'ip-cidr';
const address = "50.165.190.0/23";
if(!IPCIDR.isValidCIDR(address)) {
return;
}
const cidr = new IPCIDR(address);
// get start ip address as a string
cidr.start();
// get end ip address as a big integer
cidr.end({ type: "bigInteger" });
// do something with each element of the range
cidr.loop(ip => console.log(ip), { type: "addressObject" });
// get an array of all ip addresses in the range as a big integer;
cidr.toArray({ type: "bigInteger" });
// get an array by chunks using from/limit
cidr.toArray({ from: 1, limit: 2n });
// get an array by chunks using from/to
cidr.toArray({ from: BigInt('1'), to: 3 });
cidr.toArray({ from: '50.165.190.1', to: '50.165.190.3' });
// get an array of start and end ip addresses as a string [startIpAsString, endIpAsString]
cidr.toRange();
Load /dist/ip-cidr.js as a script and you can get the library in window.IPCIDR
to return an "ip-address" module object in the necessary format
to check the address is valid or not (ip or cidr)
to check the address is valid (only cidr)
to create an object address from the string
to check the address belongs to the range
to get the start ip address
to get the end ip address
to convert the cidr to a string like "50.165.190.0/23"
to convert the cidr to an array with start and end ip addresses [startIp, endIp]
to convert the cidr to an object with start and end ip addresses {start: startIp, end: endIp}
to convert the cidr to an array with all ip addresses in the range
you can get information by chunks using options.from/options.limit or options.from/options.to
you can pass the second argument "results" (object) to get all chunk pagination information
to run fn for each element of the range
you can use the same chunk options as in .toArray()
FAQs
Module for working with CIDR (v4, v6)
The npm package ip-cidr receives a total of 153,691 weekly downloads. As such, ip-cidr popularity was classified as popular.
We found that ip-cidr demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.