0.1.5 • Published 7 months ago

@kirick/ip v0.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

@kirick/ip

A TypeScript library for handling IPv4 and IPv6 addresses with convenient conversion methods and subnet operations.

Features

  • 🔄 Unified handling of both IPv4 and IPv6 addresses
  • 📥 Support for multiple input formats:
    • String representations
    • ArrayBuffer
    • Node.js Buffer
  • 📤 Support for multiple output formats:
    • String representations (standard notation)
    • Byte arrays
    • ArrayBuffer
    • Node.js Buffer
  • ✨ IPv4/IPv6 detection
  • ⚖️ Address equality comparison
  • 🌐 Subnet membership checking

Installation

bun add @kirick/ip
# or
pnpm install @kirick/ip
# or
npm install @kirick/ip

Usage

Basic Usage

import { IP } from '@kirick/ip';

// Create IP from string
const ip1 = new IP('127.0.0.1');
const ip2 = new IP('fe80:dead:be:ef::1');

// Check IP version
console.log(ip1.is4()); // true
console.log(ip2.is4()); // false

// Convert to string
console.log(ip1.toString()); // "127.0.0.1"
console.log(ip2.toString()); // "fe80:dead:be:ef::1"

Different Input Formats

// From string
const ip1 = new IP('127.0.0.1');

// From ArrayBuffer
const arrayBuffer = new Uint8Array([127, 0, 0, 1]).buffer;
const ip2 = new IP(arrayBuffer);

// From Node.js Buffer
const buffer = Buffer.from([127, 0, 0, 1]);
const ip3 = new IP(buffer);

Different Output Formats

const ip = new IP('127.0.0.1');

// To string
console.log(ip.toString()); // "127.0.0.1"

// To byte array
console.log(ip.toByteArray()); // [127, 0, 0, 1]

// To ArrayBuffer
const arrayBuffer = ip.toArrayBuffer();

// To Node.js Buffer
const buffer = ip.toBuffer();

Comparing IP Addresses

const ip1 = new IP('127.0.0.1');
const ip2 = new IP('::ffff:127.0.0.1'); // IPv4-mapped IPv6 address

console.log(ip1.equals(ip2)); // true

Subnet Operations

const subnet = new IP('127.0.0.0/8');
const ip = new IP('127.0.0.1');

console.log(subnet.includes(ip)); // true

API Reference

class IP

Constructor

  • constructor(value: string | ArrayBuffer | Buffer)

Methods

  • is4(): boolean - Checks if the address is IPv4
  • equals(ip: IP): boolean - Checks if two IP addresses are equal
  • includes(ip: IP): boolean - Checks if an IP address is in a subnet
  • toString(): string - Converts to string representation
  • toByteArray(): number[] - Converts to byte array
  • toArrayBuffer(): ArrayBuffer - Converts to ArrayBuffer
  • toBuffer(): Buffer - Converts to Node.js Buffer

License

MIT

0.1.2

10 months ago

0.1.4

7 months ago

0.1.3

10 months ago

0.1.5

7 months ago

0.1.1

1 year ago

0.1.1-beta.6

1 year ago

0.1.1-beta.5

1 year ago

0.1.1-beta.4

1 year ago

0.1.1-beta.3

1 year ago

0.1.1-beta.2

2 years ago

0.1.1-beta.1

2 years ago

0.1.0-beta.3

2 years ago

0.1.0-beta.2

2 years ago

0.1.0-beta.1

2 years ago