fix "Incorrect number of groups found" in func isValidIp

This commit is contained in:
2025-03-29 11:33:25 +01:00
parent b001ca6d29
commit 5266b05ce3

View File

@@ -17,15 +17,40 @@ let asnReader;
// --- Hilfsfunktionen --- // --- Hilfsfunktionen ---
/** /**
* Validiert eine IP-Adresse (v4 oder v6). * Validiert eine IP-Adresse (v4 oder v6) robust.
* @param {string} ip - Die zu validierende IP-Adresse. * @param {string} ip - Die zu validierende IP-Adresse.
* @returns {boolean} True, wenn gültig, sonst false. * @returns {boolean} True, wenn gültig, sonst false.
*/ */
function isValidIp(ip) { function isValidIp(ip) {
if (!ip) return false; // Frühe Prüfung auf offensichtlich ungültige Werte
const addr4 = new Address4(ip); if (!ip || typeof ip !== 'string' || ip.trim() === '') {
const addr6 = new Address6(ip); return false;
return addr4.isValid() || addr6.isValid(); }
try {
// Zuerst versuchen, als IPv4 zu parsen und zu validieren
const addr4 = new Address4(ip);
if (addr4.isValid()) {
return true; // Gültige IPv4
}
// Wenn nicht IPv4, versuchen als IPv6 zu parsen und zu validieren
const addr6 = new Address6(ip);
if (addr6.isValid()) {
return true; // Gültige IPv6
}
// Wenn keine der Konstruktoren einen Fehler geworfen hat,
// aber isValid() false zurückgibt (selten, aber möglich)
return false;
} catch (error) {
// Wenn bei new Address4() oder new Address6() ein Fehler auftritt
// (z.B. "Incorrect number of groups"), ist die Eingabe ungültig.
// Wir loggen den Fehler optional für Debugging-Zwecke, geben aber false zurück.
// console.warn(`IP validation caught error for input "${ip}": ${error.message}`);
return false;
}
} }
/** /**