diff --git a/interface/lib/classes/validate_dns.inc.php b/interface/lib/classes/validate_dns.inc.php
index c4b94b5f7765d02a2e5715cc97d88e320e83c049..15d670d84a4162057d19cee22ac38fe1e85361e0 100644
--- a/interface/lib/classes/validate_dns.inc.php
+++ b/interface/lib/classes/validate_dns.inc.php
@@ -310,7 +310,6 @@ class validate_dns {
if(strpos($ip, '/') !== false) {
list($ip, $subnet) = explode('/', $ip, 2);
$ip = trim($ip);
- $subnet = intval($subnet);
}
if(function_exists('filter_var')) {
if(!filter_var($ip, FILTER_VALIDATE_IP)) {
@@ -320,7 +319,11 @@ class validate_dns {
} else $this->errorMessage .= "function filter_var missing
\r\n";
// Check if the range is valid
if ($subnet !== '') {
- if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
+ if (!is_numeric($subnet)) {
+ $errmsg = $validator['errmsg'];
+ $errorMessage .= $app->tform->lng($errmsg)."
\r\n";
+ }
+ elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
if ($subnet < 1 || $subnet > 128) {
$errmsg = $validator['errmsg'];
$errorMessage .= $app->tform->lng($errmsg)."
\r\n";