directus
1import { matches } from 'ip-matching';2
3/**
4* Checks if an IP address is contained in a list of networks
5* @param networks List of IP addresses (192.168.0.1), CIDR notations (192.168.0.0/24) or IP ranges (192-168.0.0-192.168.2.0)
6* @throws Will throw if list contains invalid network definitions
7*/
8
9export function ipInNetworks(ip: string, networks: string[]) {10for (const allowedIp of networks) {11if (matches(ip, allowedIp)) return true;12}13
14return false;15}
16