From 71193906819ba36982a21d3d79a2251c56c92cd2 Mon Sep 17 00:00:00 2001 From: ztimson Date: Mon, 21 Jul 2025 18:25:14 -0400 Subject: [PATCH] Added reserved IP utility --- package.json | 2 +- src/misc.ts | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 051e99c..30a7297 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ztimson/utils", - "version": "0.26.8", + "version": "0.26.9", "description": "Utility library", "author": "Zak Timson", "license": "MIT", diff --git a/src/misc.ts b/src/misc.ts index bb29be9..196c5fd 100644 --- a/src/misc.ts +++ b/src/misc.ts @@ -47,6 +47,17 @@ export function ipV6ToV4(ip: string) { return ipv4; } +/** + * Check if IP is reserved, e.g. localhost, private IPs, etc. + * @param {string} ip + * @returns {boolean} + */ +export function reservedIp(ip: string): boolean { + if(ip == 'localhost') return true; + return /\b(10\.(?:[0-9]{1,3}\.){2}[0-9]{1,3})\b|\b(172\.(?:1[6-9]|2[0-9]|3[0-1])\.(?:[0-9]{1,3}\.)[0-9]{1,3})\b|\b(192\.168\.(?:[0-9]{1,3}\.)[0-9]{1,3})\b/.test(ip); +} + + /** * Represents a function that listens for events and handles them accordingly. *