You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.7 KiB
90 lines
2.7 KiB
# IP |
|
[![](https://badge.fury.io/js/ip.svg)](https://www.npmjs.com/package/ip) |
|
|
|
IP address utilities for node.js |
|
|
|
## Installation |
|
|
|
### npm |
|
```shell |
|
npm install ip |
|
``` |
|
|
|
### git |
|
|
|
```shell |
|
git clone https://github.com/indutny/node-ip.git |
|
``` |
|
|
|
## Usage |
|
Get your ip address, compare ip addresses, validate ip addresses, etc. |
|
|
|
```js |
|
var ip = require('ip'); |
|
|
|
ip.address() // my ip address |
|
ip.isEqual('::1', '::0:1'); // true |
|
ip.toBuffer('127.0.0.1') // Buffer([127, 0, 0, 1]) |
|
ip.toString(new Buffer([127, 0, 0, 1])) // 127.0.0.1 |
|
ip.fromPrefixLen(24) // 255.255.255.0 |
|
ip.mask('192.168.1.134', '255.255.255.0') // 192.168.1.0 |
|
ip.cidr('192.168.1.134/26') // 192.168.1.128 |
|
ip.not('255.255.255.0') // 0.0.0.255 |
|
ip.or('192.168.1.134', '0.0.0.255') // 192.168.1.255 |
|
ip.isPrivate('127.0.0.1') // true |
|
ip.isV4Format('127.0.0.1'); // true |
|
ip.isV6Format('::ffff:127.0.0.1'); // true |
|
|
|
// operate on buffers in-place |
|
var buf = new Buffer(128); |
|
var offset = 64; |
|
ip.toBuffer('127.0.0.1', buf, offset); // [127, 0, 0, 1] at offset 64 |
|
ip.toString(buf, offset, 4); // '127.0.0.1' |
|
|
|
// subnet information |
|
ip.subnet('192.168.1.134', '255.255.255.192') |
|
// { networkAddress: '192.168.1.128', |
|
// firstAddress: '192.168.1.129', |
|
// lastAddress: '192.168.1.190', |
|
// broadcastAddress: '192.168.1.191', |
|
// subnetMask: '255.255.255.192', |
|
// subnetMaskLength: 26, |
|
// numHosts: 62, |
|
// length: 64, |
|
// contains: function(addr){...} } |
|
ip.cidrSubnet('192.168.1.134/26') |
|
// Same as previous. |
|
|
|
// range checking |
|
ip.cidrSubnet('192.168.1.134/26').contains('192.168.1.190') // true |
|
|
|
|
|
// ipv4 long conversion |
|
ip.toLong('127.0.0.1'); // 2130706433 |
|
ip.fromLong(2130706433); // '127.0.0.1' |
|
``` |
|
|
|
### License |
|
|
|
This software is licensed under the MIT License. |
|
|
|
Copyright Fedor Indutny, 2012. |
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a |
|
copy of this software and associated documentation files (the |
|
"Software"), to deal in the Software without restriction, including |
|
without limitation the rights to use, copy, modify, merge, publish, |
|
distribute, sublicense, and/or sell copies of the Software, and to permit |
|
persons to whom the Software is furnished to do so, subject to the |
|
following conditions: |
|
|
|
The above copyright notice and this permission notice shall be included |
|
in all copies or substantial portions of the Software. |
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
|
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN |
|
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
|
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
|
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|