1.0.0 • Published 8 years ago

iplib v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

IPLib

IPLib is a small library for working with IP addresses, subnets, masks. It's available in browser and in Node.js.

Preparing

In browser
<script src="ip.js"></script>
In Node.js

$ npm install iplib

var IP = require('iplib')

Examples:

Notes:
  • All ip arguments expect valid ip (besides ip in parse(ip) and isIPv4(ip)).
  • All mask arguments expect valid mask.
IP.parse(ip, isSubnet)
> IP.parse('192.168.0.32')
{ ip: '192.168.0.32',
  mask: '255.255.255.0' }
> IP.parse('192.168.0.32', true)
{ ip: '192.168.0.32',
  mask: '255.255.255.224' }
> IP.parse('192.168.0.0', true)
{ ip: '192.168.0.0',
  mask: '255.255.255.0' }
> IP.parse('192.168.0.0/22', true)
{ ip: '192.168.0.0',
  mask: '255.255.252.0' }
> IP.parse('192.168.0.256')
null
isMask(ip)
> IP.isMask('255.255.255.0')
true
> IP.isMask('255.255.255.1')
false
IP.isValidMaskForSubnet(subnet, mask)
> IP.isValidMaskForSubnet('192.168.0.0', '255.255.255.0')
true
> IP.isValidMaskForSubnet('192.168.0.0', '255.0.0.0')
false
IP.isIpFromSubnet(subnet, mask, ip)
> IP.isIpFromSubnet('192.168.0.0', '255.255.255.0', '192.168.0.1')
true
> IP.isIpFromSubnet('192.168.0.0', '255.255.255.0', '192.168.0.0')
true
> IP.isIpFromSubnet('192.168.0.0', '255.255.255.0', '192.168.1.0')
false
IP.getNextIp(ip)
> IP.getNextIp('192.168.0.0')
'192.168.0.1'
IP.getMaskLength(mask)
> IP.getMaskLength('255.255.255.0')
24
> IP.getMaskLength('255.255.255.255')
32
> IP.getMaskLength('255.255.255.254')
31
> IP.getMaskLength('0.0.0.0')
0
IP.isIPv4(ip)
> IP.isIPv4('192.168.0.1')
true
> IP.isIPv4('192.168.0.256')
false
> IP.isIPv4('0.0.0.0')
true
IP.isIPv6(ip)
> IP.isIPv6('0.0.0.0')
false
> IP.isIPv6('1::1')
true