A TypeScript library for handling IPv4 and IPv6 addresses with convenient conversion methods and subnet operations.
- 🔄 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
bun add @kirick/ip
# or
pnpm install @kirick/ip
# or
npm install @kirick/ipimport { 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"// 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);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();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)); // trueconst subnet = new IP('127.0.0.0/8');
const ip = new IP('127.0.0.1');
console.log(subnet.includes(ip)); // trueconstructor(value: string | ArrayBuffer | Buffer)
is4(): boolean- Checks if the address is IPv4equals(ip: IP): boolean- Checks if two IP addresses are equalincludes(ip: IP): boolean- Checks if an IP address is in a subnettoString(): string- Converts to string representationtoByteArray(): number[]- Converts to byte arraytoArrayBuffer(): ArrayBuffer- Converts to ArrayBuffertoBuffer(): Buffer- Converts to Node.js Buffer
MIT