v6match
v0.1.1
Published
Efficient CIDR blocks matching for IPv6 and IPv4.
Downloads
4
Maintainers
Readme
v6match - Efficient CIDR blocks matching
Features
- 🌐 Widespread Support: v6match supports both IPv4 and IPv6 CIDR blocks, including IPv4-mapped IPv6 addresses.
- 🚀 High Performance: With prefix tree based matching, v6match is designed to be fast and efficient. Perform 150,000+ match queries per second on a 1C/1G VPS.
- 🔍 Large CIDR Blocks Support: v6match can handle thousands of CIDR blocks with ease.
- 🛠️ Zero Dependencies: v6match keeps your project light with no external dependencies, making it simple to integrate and deploy.
- ✅ Easy to Use: A straightforward API that gets you up and running with just a few lines of code.
Installation
npm i v6match
Usage
import { Matcher } from 'v6match';
const m = new Matcher();
m.add('2001:db8::/32');
m.has('2001:db8::1'); // true
API
Matcher.add(cidr: string): void
Add a CIDR block to the matcher. Supports both IPv4, IPv6 and IPv4-mapped IPv6 CIDR blocks.
m.add('127.0.0.1/8');
m.add('::FFFF:192.168.0.1/120');
m.add('2001:db8::/32');
Matcher.has(ip: string): boolean
Check if an IP address is in any of the CIDR blocks added to the matcher.
m.has('127.0.0.1'); // true
m.has('::FFFF:192.168.1.1'); // false
m.has('2001:db8::1'); // true