# validate and normalize MAC address if ($action !== "delete") { if (strlen(@$address['mac']) > 0) { if ($User->validate_mac($address['mac']) === false) { $errors[] = _('Invalid MAC address') . "!"; } else { $address['mac'] = $User->reformat_mac_address($address['mac'], 1); } } } # modify action - if delete ok, dynamically reset add / edit -> if IP already exists set edit if ($action != "delete") { $address['action'] = $Addresses->address_exists($m, $address['subnetId']) === true ? "edit" : "add"; } # if it fails set error log if (!$Addresses->modify_address($address, false)) { $errors[] = _('Cannot') . ' ' . $address['action'] . ' ' . _('IP address') . ' ' . $Addresses->transform_to_dotted($m); } # next IP $m = gmp_strval(gmp_add($m, 1)); } # print errors if they exist if (isset($errors)) { $log = $Result->array_to_log($errors); $Result->show("danger", $log, false); $Log->write("IP address modification", "'Error {$action} range {$address['start']} - {$address['stop']}<br> {$log}", 2); } else { # reset IP for mailing $address['ip_addr'] = $address['start'] . ' - ' . $address['stop']; # log and changelog $Result->show("success", _("Range") . " {$address['start']} - {$address['stop']} " . _($action) . " " . _("successfull") . "!", false);
$Result = new Result(); # insert to database $discovered = 0; //for mailing foreach ($scan_subnets as $s) { if (sizeof(@$s->discovered) > 0) { foreach ($s->discovered as $ip) { // fetch subnet $subnet = $Subnets->fetch_subnet("id", $s->id); $nsid = $subnet === false ? false : $subnet->nameserverId; // try to resolve hostname $hostname = $DNS->resolve_address($ip, false, true, $nsid); //set update query $values = array("subnetId" => $s->id, "ip_addr" => $Subnets->transform_address($ip, "decimal"), "dns_name" => $hostname['name'], "description" => "-- autodiscovered --", "note" => "This host was autodiscovered on " . $nowdate, "lastSeen" => $nowdate, "state" => "2", "action" => "add"); //insert $Addresses->modify_address($values); //set discovered $discovered++; } } } # update scan time $Scan->ping_update_scanagent_checktime(1, $nowdate); # send mail if ($discovered > 0 && $send_mail) { # check for recipients foreach ($Admin->fetch_multiple_objects("users", "role", "Administrator") as $admin) { if ($admin->mailNotify == "Yes") { $recepients[] = array("name" => $admin->real_name, "email" => $admin->email); } }
} } // set action if ($id = $Addresses->address_exists($lineArr[0], $_POST['subnetId'], false)) { $action = "edit"; } else { $action = "add"; } // set insert / update values $address_insert = array("action" => $action, "subnetId" => $_POST['subnetId'], "ip_addr" => $lineArr[0], "state" => $Addresses->address_type_type_to_index($lineArr[1]), "description" => $lineArr[2], "dns_name" => $lineArr[3], "mac" => $lineArr[4], "owner" => $lineArr[5], "switch" => $lineArr[6], "port" => $lineArr[7], "note" => $lineArr[8]); // add id if ($action == "edit") { $address_insert["id"] = $id; } // insert if ($Addresses->modify_address($address_insert) === false) { $errors++; } else { if ($action == "edit") { $edit++; } else { $add++; } } } } # print success if no errors if ($errors == 0) { $Result->show("success", _('Import successfull'), false); # erase file on success unlink('upload/import.' . $filetype);