+register_format('ipv6', \&pve_verify_ipv6);
+sub pve_verify_ipv6 {
+ my ($ipv6, $noerr) = @_;
+
+ if ($ipv6 !~ m/^(?:$IPV6RE)$/) {
+ return undef if $noerr;
+ die "value does not look like a valid IPv6 address\n";
+ }
+ return $ipv6;
+}
+
+register_format('ip', \&pve_verify_ip);
+sub pve_verify_ip {
+ my ($ip, $noerr) = @_;
+
+ if ($ip !~ m/^(?:(?:$IPV4RE)|(?:$IPV6RE))$/) {
+ return undef if $noerr;
+ die "value does not look like a valid IP address\n";
+ }
+ return $ip;
+}
+