IP modifier
A modifier which creates a validation rule to ensure that a given string is a valid IP address.
Schemas
string
: Learn more
Arguments
version?
- Optional version specification:'v4'
for IPv4 only,'v6'
for IPv6 only, or undefined for bothmessage?
- A custom object with error messages to be displayed when validation fails or there are type errors
Example
import { ip, string } from '@nordic-ui/validathor';
// Accept both IPv4 and IPv6
const ipRule = string([
ip(undefined, {
type_error: "Must be a valid IP address",
}),
]);
// IPv4 only
const ipv4Rule = string([
ip('v4', {
type_error: "Must be a valid IPv4 address",
}),
]);
// IPv6 only
const ipv6Rule = string([
ip('v6', {
type_error: "Must be a valid IPv6 address",
}),
]);
try {
const ipv4 = ipv4Rule.parse('192.168.1.1');
const ipv6 = ipv6Rule.parse('2001:db8::8a2e:370:7334');
console.log('IPv4:', ipv4);
console.log('IPv6:', ipv6);
} catch (error) {
console.error('Parsing failed:', error.message);
}
Supported Formats
IPv4 Addresses
- Standard dotted decimal notation:
192.168.1.1
- All valid ranges (0-255 per octet):
10.0.0.0
,172.16.0.1
,8.8.8.8
IPv6 Addresses
- Full notation:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
- Compressed notation:
2001:db8:85a3::8a2e:370:7334
- Loopback:
::1
- Unspecified:
::
- IPv4-mapped IPv6:
::ffff:192.168.1.1