$error_msg = "<div style='text-align: left;'>" . _('The following errors occurred') . ":</div>\n <div style='padding-left:15px; text-align: left;'>" . implode('<br/>', $validation_errors) . "</div>"; $error = Token::create_error_message(); Util::response_bad_request($error_msg); } $warning_msg = ''; //Validate IP/CIDR if ($ip_cidr != 'any' && $ip_cidr != '0.0.0.0/0') { if (Asset_host_ips::valid_ip($ip_cidr)) { //Agent IP/CIDR is an IP address $asset_ips = Asset_host_ips::get_ips_to_string($conn, $asset_id); if (preg_match('/' . $ip_cidr . '/', $asset_ips) == FALSE) { $warning_msg = _('The asset IP and IP/CIDR do not match'); } } else { //Agent IP/CIDR is an CIDR $ip_range = CIDR::expand_cidr($ip_cidr, 'SHORT', 'LONG'); $asset_ips_obj = new Asset_host_ips($asset_id); $asset_ips_obj->load_from_db($conn); $asset_ips = $asset_ips_obj->get_ips(); $valid_ip_range = FALSE; foreach ($asset_ips as $a_data) { $ip = Asset_host_ips::ip2ulong($a_data['ip']); if ($ip >= $ip_range[0] && $ip <= $ip_range[1]) { $valid_ip_range = TRUE; break; } } if ($valid_ip_range == FALSE) { $warning_msg = _('The selected asset IP is out of the IP/CIDR range'); } }