@leichtgewicht/ip-codec (2.0.5)
Published 2026-02-24 13:49:45 +00:00 by atheaadmin
Installation
@leichtgewicht:registry=npm install @leichtgewicht/ip-codec@2.0.5"@leichtgewicht/ip-codec": "2.0.5"About this package
@leichtgewicht/ip-codec
Small package to encode or decode IP addresses from buffers to strings. Supports IPV4 and IPV6.
Usage
The basics are straigthforward
import { encode, decode, sizeOf, familyOf } from '@leichtgewicht/ip-codec'
const uint8Array = encode("127.0.0.1")
const str = decode(uint8Array)
try {
switch sizeOf(str) {
case 4: // IPv4
case 16: // IPv6
}
switch familyOf(str) {
case: 1: // IPv4
case: 2: // IPv6
}
} catch (err) {
// Invalid IP
}
By default the library will work with Uint8Array's but you can bring your own buffer:
const buf = Buffer.alloc(4)
encode('127.0.0.1', buf)
It is also possible to de-encode at a location inside a given buffer
const buf = Buffer.alloc(10)
encode('127.0.0.1', buf, 4)
Allocation of a buffer may be difficult if you don't know what type the buffer: you can pass in a generator to allocate it for you:
encode('127.0.0.1', Buffer.alloc)
You can also de/encode ipv4 or ipv6 specifically:
import { v4, v6 } from '@leichtgewicht/ip-codec'
v4.decode(v4.encode('127.0.0.1'))
v6.decode(v6.encode('::'))
History
The code in this package was originally extracted from node-ip and since improved.
Notable changes are the removal of the Buffer dependency and better support for detection of
formats and allocation of buffers.
License
Dependencies
Development Dependencies
| ID | Version |
|---|---|
| @definitelytyped/dtslint | 0.2.19 |
| @leichtgewicht/esm2umd | ^0.4.0 |
| c8 | ^9.1.0 |
| fresh-tape | ^5.5.3 |
| standard | ^17.1.0 |
| typescript | ^5.4.3 |
Keywords
ip
ipv4
ipv6
codec
codecs
buffer
conversion