ip-cidr-webpack

1.2.7 • Public • Published

Install

npm install ip-cidr

About

Module for working with CIDR (v4, v6). Based on ip-address

Example

import CIDR from "ip-cidr-webpack";
 
let cidr = new CIDR("50.165.190.0/23"); 
 
if(!cidr.isValid()) {
    // something 
}
 
cidr.start(); // get start ip as string
cidr.end({ asBigInteger: true }); // get end ip as big integer
 
let data = [];
 
const fn = (ip) => {
    // do something with each element of CIDR range    
    data.push(ip) // ip is "ip-address" module object, because of option asAddressObject is true 
}
 
cidr.arrayAction(fn, { asAddressObject: true });
cidr.toArray({ asBigInteger: true }); // get an array of all ip in CIDR range as big integer;
cidr.toRange(); // get an array of start and end ip as string [startIpAsString, endIpAsString]

Client side

Load /dist/ip-cidr.js as script and get the library in window.IPCIDR

API

.formatIP(address, [options])

returns "ip-address" module object in the necessary format
options are the same in all of the library functions and might include asBigInteger, asAddressObject or asString (by default)

.start([options])

get start ip

.end([options])

get end ip

.toString()

get string cidr as "50.165.190.0/23"

.toRange([options])

get an array of start and end ip [startIp, endIp]

.toObject([options])

get an object of start and end ip {start: startIp, end: endIp}

.toArray([options], [results])

get an array of all ip in CIDR range
you can get an information by chunks using options.from and options.limit
this options might be an integer or a big integer("jsbn" instance)
you can pass the second argument "results" (object) to get all chunk pagination information

.arrayAction(fn, [options], [results])

run fn for every element of CIDR range
you can use the same chunk options as in .toArray

Package Sidebar

Install

npm i ip-cidr-webpack

Weekly Downloads

1

Version

1.2.7

License

MIT

Unpacked Size

100 kB

Total Files

8

Last publish

Collaborators

  • floatingghost