From: Dietmar Maurer Date: Thu, 23 Apr 2015 06:19:03 +0000 (+0200) Subject: add additional methods for IP address verification X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=ed5880acdc77673c98ac25fcc4c58201832b9de7;hp=c70c3bbc838ecca0249071a294cd64e66967566d add additional methods for IP address verification --- diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index f42519c..028766c 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -147,13 +147,35 @@ register_format('ipv4', \&pve_verify_ipv4); sub pve_verify_ipv4 { my ($ipv4, $noerr) = @_; - if (!Net::IP::ip_is_ipv4($ipv4)) { - return undef if $noerr; - die "value does not look like a valid IP address\n"; + if ($ipv4 !~ m/^(?:$IPV4RE)$/) { + return undef if $noerr; + die "value does not look like a valid IPv4 address\n"; } return $ipv4; } +register_format('ipv6', \&pve_verify_ipv6); +sub pve_verify_ipv4 { + 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; +} + my $ipv4_mask_hash = { '128.0.0.0' => 1, '192.0.0.0' => 2,