address-range
TypeScript icon, indicating that this package has built-in type declarations

0.2.14 • Public • Published

address-range

Install

npm install --save address-range
# or
yarn add address-range

API

AddressRange

class AddressRange {
  readonly startAddress: bigint
  readonly endAddress: bigint

  constructor(startAddress: bigint, endAddress: bigint)

  includes(address: bigint): boolean
  isSubSetOf(addressRange: AddressRange): boolean
  hasIntersectionOf(addressRange: AddressRange): boolean
  hasLeftIntersectionOf(addressRange: AddressRange): boolean
  hasRightIntersectionOf(addressRange: AddressRange): boolean
  toString(): string
}

IPv4AddressRange

class IPv4AddressRange extends AddressRange {
  static from(startAddress: string, endAddress: string): IPv4AddressRange
  static from(startAddress: string, hosts: number): IPv4AddressRange

  includes(address: string): boolean
  includes(address: bigint): boolean
  toString(): string
}

IPv6AddressRange

class IPv6AddressRange extends AddressRange {
  static from(startAddress: string, endAddress: string): IPv6AddressRange
  static from(startAddress: string, hosts: number): IPv6AddressRange

  includes(address: string): boolean
  includes(address: bigint): boolean
  toString(): string
}

concat

function concat<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

If the address ranges are concatenated at the beginning and end, concat the address ranges.

merge

function merge<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

If the address ranges have intersections, merge the address ranges.

removeSubsets

function removeSubsets<T extends AddressRange>(ranges: T[]): T[]

If the address range is a subset of another address range, remove the address range.

compress

function compress<T extends AddressRange>(
  ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]

Lossless compression of address ranges.

convertIPv4AddressBigIntToString

function convertIPv4AddressBigIntToString(address: bigint): string

convertIPv4AddressStringToBigInt

function convertIPv4AddressStringToBigInt(address: string): bigint

convertIPv6AddressBigIntToString

function convertIPv6AddressBigIntToString(address: bigint): string

convertIPv6AddressStringToBigInt

function convertIPv6AddressStringToBigInt(address: string): bigint

Readme

Keywords

none

Package Sidebar

Install

npm i address-range

Weekly Downloads

2

Version

0.2.14

License

MIT

Unpacked Size

41.2 kB

Total Files

51

Last publish

Collaborators

  • black_glory