0.1.0 • Published 3 years ago

orange-ip v0.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

Orange IP

Library for working with IP addresses.

Example

Let's say we have some config with whitelisted sub networks / IP addresses and we want to see if user's IP is whitelisted.

Actually there is a method OrangeIPv4Subnet.isIpInOneOfTheSubnets, but let's pretend we don't have it :)

const {OrangeIPv4Subnet} = require("orange-ip")

const WHITELISTED = "10.0.0.0/8;45.55.52.131".split(';').map(v => new OrangeIPv4Subnet(v))

function is_whitelisted(ip) {
  for (const s of WHITELISTED) {
    if (s.isIpInTheSubnet(ip)) return true
  }
  return false
}

console.log(is_whitelisted("45.55.52.131")) // true
console.log(is_whitelisted("10.10.10.10")) // true
console.log(is_whitelisted("8.8.8.8")) // false

Classes

OrangeIPv4Standard

Class provides some data related to the IPv4 standard

ElementNameTypeDescription
static propertyPRIVATE_NETWORKSstring[]List of private-use networks: https://tools.ietf.org/html/rfc1918
static propertyLOOPBACK_NETWORKSstring[]List of loopback networks: https://tools.ietf.org/html/rfc1122#section-3.2.1.3
static propertyDOCUMENTATION_NETWORKSstring[]List of documentation (TEST-NET-...) networks: https://tools.ietf.org/html/rfc5737
static propertyALL_SPECIAL_NETWORKSstring[]List of all special networks described in RFC 6890: https://tools.ietf.org/html/rfc6890

OrangeIPv4Address

IPv4 address

ElementNameTypeDescription
methodconstructorConstructor
propertyint_valuenumberInteger value of the address
methodtoStringstringConverts object to string in XXX.XXX.XXX.XXX format
methodisIpInOneOfTheSubnetsbooleanReturns if IP address in one of the networks
propertyis_specialbooleanTrue if IP address is in one of special networks described in RFC 6890 (OrangeIPv4Standard.ALL_SPECIAL_NETWORKS)
propertyis_privatebooleanTrue if IP address is private
propertyis_loopbackbooleanTrue if IP address is a loopback

OrangeIPv4Mask

IPv4 subnet mask

ElementNameTypeDescription
methodconstructorConstructor
propertyint_valuenumberInteger value of the address
methodtoStringstringConverts object to string in XXX.XXX.XXX.XXX format
static methodcreateFromPrefixLengthOrangeIPv4MaskCreates subnet mask object from network prefix length
propertyprefix_lengthnumberNetwork prefix length

OrangeIPv4Subnet

IPv4 subnet

ElementNameTypeDescription
methodconstructorConstructor
static methodcreateFromSlashFormatOrangeIPv4SubnetCreates subnet object from string
methodtoStringstringConverts object to string in xxx.xxx.xxx.xxx/zz format