Esempio n. 1
1
$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);
Esempio n. 3
0
# 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);