ip-bigint
Convert IPv4 and IPv6 addresses to and from BigInt
Last updated 16 days ago by GitHub Actions .
BSD-2-Clause · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install ip-bigint 
SYNC missed versions from official npm registry.

ip-bigint

Convert IPv4 and IPv6 addresses to and from BigInt. Compliant with RFC 5952 and RFC 4291.

Usage

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

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

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

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

API

parseIp(ip: string)

Parse a IP address string to a ParsedIp object.

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]}: ParsedIp, opts?: StringifyOpts)

Convert a ParsedIp object back to an IP address string.

opts: Options StringifyOpts

  • compress: boolean - Whether to compress the IP. For IPv6, this means the "best representation" all-lowercase shortest possible form. Default: true.
  • hexify: boolean - Whether to convert IPv4-Mapped IPv6 addresses to hex. Default: false.
  • mapv4: boolean - Whether to convert IPv4-Mapped IPv6 addresses (e.g. ::ffff:127.0.0.1) to plain IPv4 (e.g. 127.0.0.1). Default: false.

normalizeIp(ip: string, opts?: StringifyOpts)

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

opts: Options StringifyOpts

  • compress: boolean - Whether to compress the IP. For IPv6, this means the "best representation" all-lowercase shortest possible form. Default: true.
  • hexify: boolean - Whether to convert IPv4-Mapped IPv6 addresses to hex. Default: false.
  • mapv4: boolean - Whether to convert IPv4-Mapped IPv6 addresses (e.g. ::ffff:127.0.0.1) to plain IPv4 (e.g. 127.0.0.1). 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: string)

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

Current Tags

  • 8.3.3                                ...           latest (16 days ago)

45 Versions

  • 8.3.3                                ...           16 days ago
  • 8.3.2                                ...           17 days ago
  • 8.3.1                                ...           25 days ago
  • 8.3.0                                ...           25 days ago
  • 8.2.12                                ...           a month ago
  • 8.2.10                                ...           a month ago
  • 8.2.9                                ...           a month ago
  • 8.2.8                                ...           a month ago
  • 8.2.7                                ...           2 months ago
  • 8.2.6                                ...           2 months ago
  • 8.2.5                                ...           2 months ago
  • 8.2.4                                ...           2 months ago
  • 8.2.3                                ...           2 months ago
  • 8.2.2                                ...           7 months ago
  • 8.2.1                                ...           a year ago
  • 8.2.0                                ...           2 years ago
  • 8.1.1                                ...           2 years ago
  • 8.1.0                                ...           2 years ago
  • 8.0.2                                ...           2 years ago
  • 8.0.1                                ...           2 years ago
  • 8.0.0                                ...           2 years ago
  • 7.3.0                                ...           3 years ago
  • 7.2.1                                ...           3 years ago
  • 7.2.0                                ...           3 years ago
  • 7.1.0                                ...           3 years ago
  • 7.0.2                                ...           3 years ago
  • 7.0.1                                ...           3 years ago
  • 7.0.0                                ...           3 years ago
  • 6.0.1                                ...           3 years ago
  • 6.0.0                                ...           3 years ago
  • 5.0.3                                ...           4 years ago
  • 5.0.2                                ...           4 years ago
  • 5.0.1                                ...           4 years ago
  • 5.0.0                                ...           4 years ago
  • 4.0.2                                ...           4 years ago
  • 4.0.1                                ...           4 years ago
  • 4.0.0                                ...           4 years ago
  • 3.0.3                                ...           5 years ago
  • 3.0.2                                ...           5 years ago
  • 3.0.1                                ...           5 years ago
  • 3.0.0                                ...           6 years ago
  • 2.0.1                                ...           6 years ago
  • 2.0.0                                ...           7 years ago
  • 1.0.1                                ...           7 years ago
  • 1.0.0                                ...           7 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (0)
None
Dev Dependencies (14)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |