8.2.0 • Published 4 months ago

ip-bigint v8.2.0

Weekly downloads
681
License
BSD-2-Clause
Repository
github
Last release
4 months ago

ip-bigint

npm.io npm.io npm.io npm.io

Convert IPv4 and IPv6 addresses to and from BigInt

Usage

import {parseIp, stringifyIp, normalizeIp} from "ip-bigint";

const obj = parseIp("2001:db8::");
// => {number: 42540766411282592856903984951653826560n, version: 6}

stringifyIp(obj);
// => "2001:db8::"

normalizeIp("2001:db8::0:0:1");
// => "2001:db8::1"

API

parseIp(ip)

Parse a IP address string to a object (with null prototype).

For IPv4 returns {number, version}. For IPv6 returns {number, version, [ipv4mapped], [scopeid]}.

There is only rudimentary validation that the passed string is actually an IP address. You are encouraged to validate yourself using modules like ip-regex.

stringifyIp({number, version, ipv4mapped, scopeid}, opts)

Convert a parsed object back to an IP address string.

opts: Options Object

  • compress: Whether to compress the IP. For IPv6, this means the "best representation" all-lowercase shortest possible form. Default: true.
  • hexify: Whether to convert IPv4-Mapped IPv6 addresses to hex. Default: false.

normalizeIp(ip, opts)

Round-trip an IP address through parseIp and stringifyIp, effectively normalizing its representation.

opts: Options Object

  • compress: Whether to compress the IP. For IPv6, this means the "best representation" all-lowercase shortest possible form. Default: true.
  • hexify: Whether to convert IPv4-Mapped IPv6 addresses to hex. Default: false.

max4

A BigInt value that holds the biggest possible IPv4 address.

max6

A BigInt value that holds the biggest possible IPv6 address.

ipVersion(ip)

Returns a integer of the IP version, 4, 6 or 0 if it's not an IP. Very rudimentary and should not be used for validation.

Related

  • ip-regex - Regular expression for matching IP addresses
  • is-cidr - Check if a string is an IP address in CIDR notation
  • is-ip - Check if a string is an IP address
  • cidr-regex - Check if a string is an IP address in CIDR notation
  • cidr-tools - Tools to work with IPv4 and IPv6 CIDR network lists

License

© silverwind, distributed under BSD licence

8.2.0

4 months ago

8.1.1

5 months ago

8.1.0

6 months ago

8.0.2

11 months ago

8.0.1

1 year ago

8.0.0

1 year ago

7.0.0

1 year ago

7.3.0

1 year ago

7.2.1

1 year ago

7.2.0

1 year ago

7.0.2

1 year ago

7.1.0

1 year ago

7.0.1

1 year ago

6.0.1

2 years ago

6.0.0

2 years ago

5.0.3

2 years ago

5.0.2

2 years ago

5.0.1

2 years ago

5.0.0

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.2

2 years ago

3.0.3

4 years ago

3.0.2

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.0.1

4 years ago

2.0.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

1.0.3

5 years ago