20 lines
572 B
TypeScript
20 lines
572 B
TypeScript
export function validateIPv4AddressInput(value: string | undefined): string | undefined {
|
|
if (!value) {
|
|
return "IP address is required for custom bind mode";
|
|
}
|
|
const trimmed = value.trim();
|
|
const parts = trimmed.split(".");
|
|
if (parts.length !== 4) {
|
|
return "Invalid IPv4 address (e.g., 192.168.1.100)";
|
|
}
|
|
if (
|
|
parts.every((part) => {
|
|
const n = parseInt(part, 10);
|
|
return !Number.isNaN(n) && n >= 0 && n <= 255 && part === String(n);
|
|
})
|
|
) {
|
|
return undefined;
|
|
}
|
|
return "Invalid IPv4 address (each octet must be 0-255)";
|
|
}
|