class IPAddressValidator (View source)

IP address validation service

Validates IP addresses according to:

  • RFC 791: Internet Protocol (IPv4)
  • RFC 3596: DNS Extensions to Support IP Version 6
  • RFC 4291: IP Version 6 Addressing Architecture
  • RFC 5952: A Recommendation for IPv6 Address Text Representation

Methods

validateIPv4(string $ipv4)

Validate an IPv4 address

bool
isValidIPv4(string $ipv4)

Check if a string is a valid IPv4 address

validateIPv6(string $ipv6, bool $canonicalForm = false)

Validate an IPv6 address according to RFC 3596 and RFC 5952

bool
isValidIPv6(string $ipv6, bool $canonicalForm = false)

Check if a string is a valid IPv6 address

validateMultipleIPs(string $ips)

Validate multiple IP addresses separated by commas

bool
areMultipleValidIPs(string $ips)

Check if a string contains valid IP addresses separated by commas

Details

ValidationResult validateIPv4(string $ipv4)

Validate an IPv4 address

Parameters

string $ipv4

IPv4 address string

Return Value

ValidationResult

ValidationResult with validated IP or error

bool isValidIPv4(string $ipv4)

Check if a string is a valid IPv4 address

Parameters

string $ipv4

IPv4 address string

Return Value

bool

True if valid IPv4 address

ValidationResult validateIPv6(string $ipv6, bool $canonicalForm = false)

Validate an IPv6 address according to RFC 3596 and RFC 5952

Comprehensive validation for IPv6 addresses used in AAAA records. This includes:

  • Basic format validation using PHP's filter_var
  • Validation of IPv6 address patterns per RFC 4291
  • Canonical format recommendations from RFC 5952
  • Special address validation (loopback, unspecified, etc.)
  • Checks for deprecated IPv6 formats

Parameters

string $ipv6

IPv6 address string

bool $canonicalForm

Whether to enforce RFC 5952 canonical form (lowercase, compression rules)

Return Value

ValidationResult

ValidationResult with validated IP or error

bool isValidIPv6(string $ipv6, bool $canonicalForm = false)

Check if a string is a valid IPv6 address

Parameters

string $ipv6

IPv6 address string

bool $canonicalForm

Whether to also check RFC 5952 canonical form

Return Value

bool

True if valid IPv6 address

ValidationResult validateMultipleIPs(string $ips)

Validate multiple IP addresses separated by commas

Supports PowerDNS IP:port syntax for backward compatibility:

  • IPv4: "192.0.0.1, 192.0.0.2"
  • IPv4 with port: "192.0.2.1:5300"
  • IPv6: "2001:1::1"
  • IPv6 with port: "[2001:db8::1]:5300"

Parameters

string $ips

Comma separated IP addresses with optional ports

Return Value

ValidationResult

ValidationResult with array of validated IPs or error

bool areMultipleValidIPs(string $ips)

Check if a string contains valid IP addresses separated by commas

Parameters

string $ips

Comma separated IP addresses

Return Value

bool

True if all IPs are valid