v6match

0.1.1 • Public • Published

v6match - Efficient CIDR blocks matching

GitHub License npm Version GitHub last commit

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

License

The MIT License

Package Sidebar

Install

npm i v6match

Weekly Downloads

1

Version

0.1.1

License

MIT

Unpacked Size

16 kB

Total Files

7

Last publish

Collaborators

  • henrize