$Tools = new Tools($Database); $Result = new Result(); # verify that user is logged in $User->check_user_session(); # fake error print "<div class='alert-danger hidden'></div>"; # scan disabled if ($User->settings->enableSNMP != "1") { $Result->show("danger", _("SNMP module disbled"), true); } # admin check if ($User->is_admin() !== true) { $Result->show("danger", _('Admin privileges required'), true); } # set class $Snmp = new phpipamSNMP(); # get existing vrfs $existing_vrfs = $Tools->fetch_all_objects("vrf", "vrfId"); if ($existing_vrfs !== false) { foreach ($existing_vrfs as $v) { $ex_vrfs[$v->name] = $v->rd; } } // no errors error_reporting(E_ERROR); # set devices foreach ($_POST as $k => $p) { if (strpos($k, "device-") !== false) { # fetch device $device = $Tools->fetch_object("devices", "id", str_replace("device-", "", $k)); if ($device !== false) {
# scan disabled if ($User->settings->enableSNMP != "1") { $Result->show("danger", _("SNMP module disbled"), true); } # subnet check $subnet = $Subnets->fetch_object("subnets", "id", $_POST['subnetId']); if ($subnet === false) { $Result->show("danger", _("Invalid subnet Id"), true); } # fetch vlan $vlan = $Tools->fetch_object("vlans", "vlanId", $subnet->vlanId); if ($vlan === false) { $Result->show("danger", _("Subnet must have VLAN assigned for MAc address query"), true); } # set class $Snmp = new phpipamSNMP(); // fetch all existing hosts $all_subnet_hosts = (array) $Addresses->fetch_subnet_addresses($subnet->id); // reindex if (sizeof($all_subnet_hosts) > 0) { foreach ($all_subnet_hosts as $h) { $subnet_ip_addresses[] = $Subnets->transform_address($h->ip_addr, "dotted"); } } # set selected address fields array $selected_ip_fields = $User->settings->IPfilter; $selected_ip_fields = explode(";", $selected_ip_fields); // no errors error_reporting(E_ERROR); # fetch devices that use get_routing_table query $devices_used_arp = $Tools->fetch_multiple_objects("devices", "snmp_queries", "%get_arp_table%", "id", true, true);
# version can be 0, 1 or 2 if ($_POST['snmp_version'] < 0 || $_POST['snmp_version'] > 2) { $Result->show("danger", _("Invalid version"), true, true, false, true); } # validate device $device = $Admin->fetch_object("devices", "id", $_POST['device_id']); if ($device === false) { $Result->show("danger", _("Invalid device"), true, true, false, true); } # set new snmp variables $device->snmp_community = $_POST['snmp_community']; $device->snmp_version = $_POST['snmp_version']; $device->snmp_port = $_POST['snmp_port']; $device->snmp_timeout = $_POST['snmp_timeout']; # init snmp class $Snmp = new phpipamSNMP(); # set queries foreach ($_POST as $k => $p) { if (strpos($k, "query-") !== false) { if ($p == "on") { $queries[] = substr($k, 6); } } } # fake as device queries $device->snmp_queries = implode(";", $queries); # open connection if (isset($queries)) { // set device $Snmp->set_snmp_device($device); // loop
require dirname(__FILE__) . '/../../../functions/functions.php'; # initialize user object $Database = new Database_PDO(); $User = new User($Database); $Tools = new Tools($Database); $Sections = new Sections($Database); $Subnets = new Subnets($Database); $Snmp = new phpipamSNMP(); $Result = new Result(); # set ajax $ajax_loaded = true; } # verify that user is logged in $User->check_user_session(); # snmp class $Snmp = new phpipamSNMP(); # scan disabled if ($User->settings->enableSNMP != "1") { $Result->show("danger", "SNMP module disbled", true, $ajax_loaded); } # section check if (!is_numeric($_POST['sectionId'])) { $Result->show("danger", "Invalid section Id", true, $ajax_loaded); } if (!is_numeric($_POST['subnetId'])) { $Result->show("danger", "Invalid subnet Id", true, $ajax_loaded); } $section = $Subnets->fetch_object("sections", "id", $_POST['sectionId']); if ($section === false) { $Result->show("danger", "Invalid section Id", true, $ajax_loaded); }
print "<h5>" . _('Scan results') . ":</h5><hr>"; # scan disabled if ($User->settings->enableSNMP != "1") { $Result->show("danger", _("SNMP module disbled"), true); } # subnet check $subnet = $Subnets->fetch_subnet("id", $_POST['subnetId']); if ($subnet === false) { $Result->show("danger", _("Invalid subnet Id"), true); } # verify that user has write permissionss for subnet if ($Subnets->check_permission($User->user, $_POST['subnetId']) != 3) { $Result->show("danger", _('You do not have permissions to modify hosts in this subnet') . "!", true, true); } # set class $Snmp = new phpipamSNMP(); // fetch all existing hosts $all_subnet_hosts = (array) $Addresses->fetch_subnet_addresses($_POST['subnetId']); // reindex if (sizeof($all_subnet_hosts) > 0) { foreach ($all_subnet_hosts as $h) { $subnet_ip_addresses[] = $Subnets->transform_address($h->ip_addr, "dotted"); } } # set selected address fields array $selected_ip_fields = $User->settings->IPfilter; $selected_ip_fields = explode(";", $selected_ip_fields); // no errors error_reporting(E_ERROR); # fetch devices that use get_routing_table query $devices_used = $Tools->fetch_multiple_objects("devices", "snmp_queries", "%get_arp_table%", "id", true, true);