IP address utilities for node.js providing IPv4/IPv6 address manipulation, validation, and network operations
npx @tessl/cli install tessl/npm-ip@2.0.0IP is a comprehensive Node.js library providing utilities for IPv4 and IPv6 address manipulation, validation, conversion, and network operations. It supports address format conversion between strings, buffers, and long integers, subnet calculations, CIDR operations, network masking, and network interface queries.
npm install ipconst ip = require('ip');For ES modules:
import * as ip from 'ip';
// or
import ip from 'ip';const ip = require('ip');
// Get local IP address
console.log(ip.address()); // Your local IP address
// Validate IP formats
console.log(ip.isV4Format('192.168.1.1')); // true
console.log(ip.isV6Format('::1')); // true
// Convert between formats
const buffer = ip.toBuffer('127.0.0.1');
console.log(ip.toString(buffer)); // '127.0.0.1'
// Subnet operations
const subnet = ip.subnet('192.168.1.134', '255.255.255.192');
console.log(subnet.networkAddress); // '192.168.1.128'
console.log(subnet.contains('192.168.1.150')); // true
// CIDR operations
console.log(ip.cidr('192.168.1.134/26')); // '192.168.1.128'
// Check private addresses
console.log(ip.isPrivate('192.168.1.1')); // true
console.log(ip.isPrivate('8.8.8.8')); // falseThe IP library is built around several key functional areas:
Core functions for converting IP addresses between different representations including strings, buffers, and long integers.
function toBuffer(ip, buff, offset);
function toString(buff, offset, length);
function toLong(ip);
function fromLong(ipl);
function normalizeToLong(addr);Functions for validating IP address formats and classifying addresses as private, public, or loopback.
function isV4Format(ip);
function isV6Format(ip);
function isEqual(a, b);
function isPrivate(addr);
function isPublic(addr);
function isLoopback(addr);Comprehensive subnet calculation, CIDR operations, and network masking functionality for network analysis.
function fromPrefixLen(prefixlen, family);
function mask(addr, mask);
function cidr(cidrString);
function subnet(addr, mask);
function cidrSubnet(cidrString);Bitwise manipulation functions for IP addresses including NOT and OR operations.
function not(addr);
function or(a, b);Functions for querying local network interfaces and retrieving IP addresses from the system.
function address(name, family);
function loopback(family);