A package to calculate subnet masks.
npm install node-ipv4Generated by OSS Project Generator.
[![Travis Status][travis-badge]][travis-url]
[![AppVeyor Status][appveyor-badge]][appveyor-url]
[![CircleCI Status][circleci-badge]][circleci-url]
[![Coveralls Status][coveralls-badge]][coveralls-url]
[![NPM Version][npm-badge]][npm-url]
[![License][license-badge]][license-url]
> A package to calculate subnet masks.
This package provides the following features:
* Allows you to parse an IPv4 address
* Provides the address, size, netmask, first and last addresses.
* Each address provides decimal, binary and hexadecimal values.
There are two ways to install node-ipv4: globally and locally.
To install globally:
``bashInstall globally
$ npm install -g node-ipv4
To install locally:
`bash
$ npm install node-ipv4
`Usage
There are two ways to use
node-ipv4: globally and locally.Globally
* ###
-V or --version: output the version number`bash
$ node-ipv4 --version
1.1.2
`* ###
-h or --help: output usage information`bash
$ node-ipv4 --help Usage: cli [options]
Options:
-h, --help output usage information
-V, --version output the version number
-i, --ip [ip] IP Address
-c, --cidr [cidr] Cdir block
`* ###
-i or --ip [ip: string]: enter the IP address
* ### -c or --cidr [ip: number]: enter the CIDR block`bash
without alias
$ node-ipv4 --ip 192.168.1.1 --cidr 8with alias
$ node-ipv4 -i 192.168.1.1 -c 8output
{
"cidr": 8,
"size": 16777216,
"address": {
"value": 3232235777,
"address": "192.168.1.1",
"binary": "11000000101010000000000100000001",
"hexadecimal": "C0A80101"
},
"netmask": {
"value": 4278190080,
"address": "255.0.0.0",
"binary": "11111111000000000000000000000000",
"hexadecimal": "FF000000"
},
"first": {
"value": 3221225472,
"address": "192.0.0.0",
"binary": "11000000000000000000000000000000",
"hexadecimal": "C0000000"
},
"last": {
"value": 3238002687,
"address": "192.255.255.255",
"binary": "11000000111111111111111111111111",
"hexadecimal": "C0FFFFFF"
}
}
`Locally
`javascript
const ipv4 = require('node-ipv4');ipv4.parse('192.168.1.1', 16, (err, subnet) => {
if (err) return console.error(err);
console.log(subnet);
});
`Output
`json
{
"cidr": 16,
"size": 65536,
"address": {
"value": 3232235777,
"address": "192.168.1.1",
"binary": "11000000101010000000000100000001",
"hexadecimal": "C0A80101"
},
"netmask": {
"value": 4294901760,
"address": "255.255.0.0",
"binary": "11111111111111110000000000000000",
"hexadecimal": "FFFF0000"
},
"first": {
"value": 3232235520,
"address": "192.168.0.0",
"binary": "11000000101010000000000000000000",
"hexadecimal": "C0A80000"
},
"last": {
"value": 3232301055,
"address": "192.168.255.255",
"binary": "11000000101010001111111111111111",
"hexadecimal": "C0A8FFFF"
}
}
`Documentation
Address
*
value: {Number} Decimal value of an address
* address: {String} String value of an address
* binary: {String} Binary value of an address
* hexadecimal: {String} Hexadecimal value of an addressIPv4
*
cidr: {Number} CIDR block
* size: {Number} Size of subnet
* address: {Object:Address} The input address
* netmask: {Object:Address} The subnet mask
* first: {Object:Address} The first address
* last: {Object:Address} The last addressAPI: parse(address, cidr, callback)
*
address {String} IP address
* cidr {Number} CIDR block
* callback {Function}
* err {Error | null} Error
* ipv4 {Object:IPv4} Instance of IPv4Development
* Clone the repo
`bash
$ git clone https://github.com/robertoachar/node-ipv4.git
`* Install dependencies
`bash
$ npm install
`* Running scripts
| Action | Usage |
| ---------------------------------------- | ------------------- |
| Linting code |
npm run lint |
| Running unit tests | npm run jest |
| Running code coverage | npm run coverage |
| Running lint + tests | npm test |
| Sending coverage results to Coveralls.io | npm run coveralls` |[travis-badge]: https://travis-ci.org/robertoachar/node-ipv4.svg?branch=master
[travis-url]: https://travis-ci.org/robertoachar/node-ipv4
[appveyor-badge]: https://ci.appveyor.com/api/projects/status/github/robertoachar/node-ipv4?branch=master&svg=true
[appveyor-url]: https://ci.appveyor.com/project/robertoachar/node-ipv4
[circleci-badge]: https://circleci.com/gh/robertoachar/node-ipv4/tree/master.svg?style=shield
[circleci-url]: https://circleci.com/gh/robertoachar/node-ipv4
[coveralls-badge]: https://coveralls.io/repos/github/robertoachar/node-ipv4/badge.svg?branch=master
[coveralls-url]: https://coveralls.io/github/robertoachar/node-ipv4?branch=master
[npm-badge]: https://img.shields.io/npm/v/node-ipv4.svg
[npm-url]: https://www.npmjs.com/package/node-ipv4
[license-badge]: https://img.shields.io/github/license/robertoachar/node-ipv4.svg
[license-url]: https://opensource.org/licenses/MIT