JSPM

@chainsafe/is-ip

2.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 111470
  • Score
    100M100P100Q169141F
  • License MIT

Check if a string is an IP address

Package Exports

  • @chainsafe/is-ip
  • @chainsafe/is-ip/parse
  • @chainsafe/is-ip/parser

Readme

@chainsafe/is-ip

Check if a string is an IP address

Install

npm install @chainsafe/is-ip

Example

Check if a string is an IP address

import { expect } from "chai";
import {
    isIPv4,
    isIPv6,
    isIP,
    ipVersion,
} from "@chainsafe/is-ip";

// check if a string is a valid IPv4
expect(isIPv4("127.0.0.1")).to.equal(true);

// check if a string is a valid IPv6
expect(isIPv6("127.0.0.1")).to.equal(false);

// check if a string is a valid IPv4 or IPv6
expect(isIP("127.0.0.1")).to.equal(true);

// return 4, 6, or undefined
expect(ipVersion("127.0.0.1")).to.equal(4);
expect(ipVersion("1:2:3:4:5:6:7:8")).to.equal(6);
expect(ipVersion("invalid ip")).to.equal(undefined);

Parse a string into IP address bytes

import { expect } from "chai";
import {
    parseIPv4,
    parseIPv4Mapped,
    parseIPv6,
    parseIP,
} from "@chainsafe/is-ip/parse";

// parse a string into IPv4 bytes
const b1 = parseIPv4("127.0.0.1");
expect(b1).to.deep.equal(Uint8Array.from([127, 0, 0, 1]));

// parse a string into IPv6 bytes
const b2 = parseIPv6("::1");
expect(b2).to.deep.equal(Uint8Array.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]));

// parse an IPv4 string into IPv4-mapped IPv6 bytes
const b3 = parseIPv4Mapped("127.0.0.1");
expect(b3).to.deep.equal(Uint8Array.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 127, 0, 0, 1]));

// parse a string into either IPv4 or IPv6 bytes
const b4 = parseIP("127.0.0.1");
expect(b4).to.deep.equal(Uint8Array.from([127, 0, 0, 1]));

const b5 = parseIP("::1");
expect(b5).to.deep.equal(Uint8Array.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]));

const b6 = parseIP("127.0.0.1", true);
expect(b6).to.deep.equal(Uint8Array.from([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 127, 0, 0, 1]));

// parseIP* functions return undefined on invalid input
expect(parseIP("not an IP")).to.equal(undefined);

License

MIT