Introduction to ipaddr.js
ipaddr.js is a standalone JavaScript library that aids in working with IP addresses.
Key Features
- IPv4 and IPv6 validation
- IP address conversion
- Subnet matching
- Custom range matching
API Examples
IPv4 Validation
const ipaddr = require('ipaddr.js');
const ipv4 = "192.168.0.1";
console.log(ipaddr.IPv4.isValid(ipv4)); // true
IPv6 Validation
const ipv6 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334";
console.log(ipaddr.IPv6.isValid(ipv6)); // true
IP Address Conversion
const ipv4 = ipaddr.parse("192.168.0.1");
console.log(ipv4.kind()); // "ipv4"
Subnet Matching
const ipv4 = ipaddr.parse("192.168.1.1");
const range = ipaddr.parseCIDR("192.168.1.0/24");
console.log(ipv4.match(range)); // true
Custom Range Matching
const ipv6 = ipaddr.parse("2001:0db8:85a3:0000:0000:8a2e:0370:7334");
const range = [ipaddr.parse("2001:db8::"), 32];
console.log(ipv6.match(range)); // true
Application Example
Let’s create a simple application that blocks requests from certain IP addresses.
const ipaddr = require('ipaddr.js');
const bannedIPs = [
ipaddr.parse("192.168.1.1"),
ipaddr.parse("10.0.0.1")
];
function isBanned(ip) {
const parsedIP = ipaddr.parse(ip);
return bannedIPs.some(bannedIP => parsedIP.match(bannedIP));
}
const testIP1 = "192.168.1.1";
const testIP2 = "192.168.1.2";
console.log(isBanned(testIP1)); // true
console.log(isBanned(testIP2)); // false
This script checks if an IP address is in the list of banned IPs and returns true or false accordingly.
Hash: b30c1cf4de0dab00d3cacaa6eb415c804ebc1b6511c3abc97ca8612ece20e025