https://github.com/blackglory/address-range
🌲
https://github.com/blackglory/address-range
library nodejs npm-package typescript
Last synced: 2 months ago
JSON representation
🌲
- Host: GitHub
- URL: https://github.com/blackglory/address-range
- Owner: BlackGlory
- License: mit
- Created: 2021-04-10T18:40:19.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-10-02T12:23:25.000Z (almost 3 years ago)
- Last Synced: 2025-02-03T15:52:44.374Z (over 1 year ago)
- Topics: library, nodejs, npm-package, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/address-range
- Size: 1.95 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# address-range
## Install
```sh
npm install --save address-range
# or
yarn add address-range
```
## API
### AddressRange
```ts
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
```ts
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
```ts
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
```ts
function concat(
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
```ts
function merge(
ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]
```
If the address ranges have intersections, merge the address ranges.
### removeSubsets
```ts
function removeSubsets(ranges: T[]): T[]
```
If the address range is a subset of another address range,
remove the address range.
### compress
```ts
function compress(
ranges: T[]
, constructor: new (startAddress: bigint, endAddress: bigint) => T
): T[]
```
Lossless compression of address ranges.
### convertIPv4AddressBigIntToString
```ts
function convertIPv4AddressBigIntToString(address: bigint): string
```
### convertIPv4AddressStringToBigInt
```ts
function convertIPv4AddressStringToBigInt(address: string): bigint
```
### convertIPv6AddressBigIntToString
```ts
function convertIPv6AddressBigIntToString(address: bigint): string
```
### convertIPv6AddressStringToBigInt
```ts
function convertIPv6AddressStringToBigInt(address: string): bigint
```