Example #1
0
 } else {
     $hStatus = "hidden";
     $hTooltip = "";
 }
 // gateway
 $gw = $addresses[$n]->is_gateway == 1 ? "gateway" : "";
 print "\t<td class='ipaddress {$gw}'><span class='status status-{$hStatus}' {$hTooltip}></span><a href='" . create_link("subnets", $subnet['sectionId'], $_REQUEST['subnetId'], "address-details", $addresses[$n]->id) . "'>" . $Subnets->transform_to_dotted($addresses[$n]->ip_addr);
 if ($addresses[$n]->is_gateway == 1) {
     print " <i class='fa fa-info-circle fa-gateway' rel='tooltip' title='" . _('Address is marked as gateway') . "'></i>";
 }
 if (in_array('state', $selected_ip_fields)) {
     print $Addresses->address_type_format_tag($addresses[$n]->state);
 }
 print "</td>";
 # resolve dns name
 $resolve = $DNS->resolve_address($addresses[$n]);
 print "<td class='{$resolve['class']} hostname'>{$resolve['name']}</td>";
 # print description - mandatory
 print "<td class='description'>" . $addresses[$n]->description . "</td>";
 # Print mac address icon!
 if (in_array('mac', $selected_ip_fields)) {
     if (!empty($addresses[$n]->mac)) {
         print "<td class='narrow'><i class='info fa fa-gray fa-sitemap' rel='tooltip' data-container='body' title='" . _('MAC') . ": " . $addresses[$n]->mac . "'></i></td>";
     } else {
         print "<td class='narrow'></td>";
     }
 }
 # print info button for hover
 if (in_array('note', $selected_ip_fields)) {
     if (!empty($addresses[$n]->note)) {
         print "<td class='narrow'><i class='fa fa-gray fa-comment-o' rel='tooltip' data-container='body' data-html='true' title='" . str_replace("\n", "<br>", $addresses[$n]->note) . "'></td>";
Example #2
0
$Addresses = new Addresses($Database);
$Subnets = new Subnets($Database);
$DNS = new DNS($Database);
$Scan = new Scan($Database);
$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) {
Example #3
0
$statuses = explode(";", $User->settings->pingStatus);
# permissions
$subnet_permission = $Subnets->check_permission($User->user, $subnet['id']);
$section_permission = $Sections->check_permission($User->user, $subnet['sectionId']);
# checks
if (sizeof($subnet) == 0) {
    $Result->show("danger", _('Subnet does not exist'), true);
}
//subnet doesnt exist
if ($subnet_permission == 0) {
    $Result->show("danger", _('You do not have permission to access this network'), true);
}
//not allowed to access
# resolve dns name
$DNS = new DNS($Database);
$resolve = $DNS->resolve_address($address['ip_addr'], $address['dns_name'], false, $subnet['nameserverId']);
# reformat empty fields
$address = $Addresses->reformat_empty_array_fields($address, "<span class='text-muted'>/</span>");
#header
print "<h4>" . _('IP address details') . "</h4><hr>";
# back
print "<a class='btn btn-default btn-sm btn-default' href='" . create_link("subnets", $subnet['sectionId'], $subnet['id']) . "'><i class='fa fa-chevron-left'></i> " . _('Back to subnet') . "</a>";
# check if it exists, otherwise print error
if (sizeof($address) > 1) {
    # table - details
    print "<table class='ipaddress_subnet table table-noborder table-condensed' style='margin-top:10px;'>";
    # ip
    print "<tr>";
    print "\t<th>" . _('IP address') . "</th>";
    print "\t<td><strong>{$address['ip']}</strong></td>";
    print "</tr>";
Example #4
0
# reinitialize objects
$Database = new Database_PDO();
$Admin = new Admin($Database, false);
$Subnets = new Subnets($Database);
$DNS = new DNS($Database);
$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) {
            // try to resolve hostname
            $tmp = new stdClass();
            $tmp->ip_addr = $ip;
            $hostname = $DNS->resolve_address($tmp, true);
            //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 " . date("Y-m-d H:i:s"), "lastSeen" => date("Y-m-d H:i:s"));
            $Admin->object_modify("ipaddresses", "add", "id", $values);
            //set discovered
            $discovered++;
        }
    }
}
# 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);
        }
Example #5
0
    if ($resolve_config['emptyonly'] == 1) {
        $query[] = ' and `dns_name` like "" ';
    }
    $query[] = 'order by `ip_addr` ASC;';
    //join
    $query = implode("\n", $query);
}
# fetch records
$ipaddresses = $Database->getObjectsQuery($query);
# try to update dns records
foreach ($ipaddresses as $ip) {
    # fetch subnet
    $subnet = $Subnets->fetch_subnet("id", $ip->subnetId);
    $nsid = $subnet === false ? false : $subnet->nameserverId;
    # try to resolve
    $hostname = $DNS->resolve_address($ip->ip_addr, null, true, $nsid);
    # update if change
    if ($hostname['name'] != $Subnets->transform_to_dotted($ip->ip_addr)) {
        # values
        $values = array("dns_name" => $hostname['name'], "id" => $ip->id);
        # execute
        if (!$Admin->object_modify("ipaddresses", "edit", "id", $values)) {
            $Result->show_cli("Failed to update address " . $Subnets->transform_to_dotted($ip->ip_addr));
        }
        # set text
        $res[] = 'updated ip address ' . $Subnets->transform_to_dotted($ip->ip_addr) . ' with hostname ' . $hostname['name'];
    }
}
# if verbose print result so it can be emailed via cron!
if ($resolve_config['verbose'] == 1) {
    foreach ($res as $line) {
Example #6
0
     }
 } else {
     $dns_records = "";
     $button = "";
 }
 // add button
 if ($User->settings->enablePowerDNS == 1) {
     // add new button
     if ($Subnets->validate_hostname($addresses[$n]->dns_name) && ($User->isadmin || @$User->user->pdns == "Yes")) {
         $button = "<i class='fa fa-plus-circle fa-gray fa-href editRecord' data-action='add' data-id='" . $Addresses->transform_address($addresses[$n]->ip_addr, "dotted") . "' data-domain_id='" . $addresses[$n]->dns_name . "'></i>";
     } else {
         $button = "";
     }
 }
 # resolve dns name
 $resolve = $DNS->resolve_address($addresses[$n]->ip_addr, $addresses[$n]->dns_name, false, $subnet['nameserverId']);
 print "<td class='{$resolve['class']} hostname'>{$resolve['name']} {$button} {$dns_records}</td>";
 # print firewall address object - mandatory if enabled
 if (in_array('firewallAddressObject', $selected_ip_fields) && $zone) {
     print "<td class='fwzone'>" . $addresses[$n]->firewallAddressObject . "</td>";
 }
 # print description - mandatory
 print "<td class='description'>" . $addresses[$n]->description . "</td>";
 # Print mac address icon!
 if (in_array('mac', $selected_ip_fields)) {
     if (!empty($addresses[$n]->mac)) {
         print "<td class='narrow'><i class='info fa fa-gray fa-sitemap' rel='tooltip' data-container='body' title='" . _('MAC') . ": " . $addresses[$n]->mac . "'></i></td>";
     } else {
         print "<td class='narrow'></td>";
     }
 }
Example #7
0
$statuses = explode(";", $User->settings->pingStatus);
# permissions
$subnet_permission = $Subnets->check_permission($User->user, $subnet['id']);
$section_permission = $Sections->check_permission($User->user, $subnet['sectionId']);
# checks
if (sizeof($subnet) == 0) {
    $Result->show("danger", _('Subnet does not exist'), true);
}
//subnet doesnt exist
if ($subnet_permission == 0) {
    $Result->show("danger", _('You do not have permission to access this network'), true);
}
//not allowed to access
# resolve dns name
$DNS = new DNS($Database);
$resolve = $DNS->resolve_address((object) $address);
# reformat empty fields
$address = $Addresses->reformat_empty_array_fields($address, "<span class='text-muted'>/</span>");
#header
print "<h4>" . _('IP address details') . "</h4><hr>";
# back
print "<a class='btn btn-default btn-sm btn-default' href='" . create_link("subnets", $subnet['sectionId'], $subnet['id']) . "'><i class='fa fa-chevron-left'></i> " . _('Back to subnet') . "</a>";
# check if it exists, otherwise print error
if (sizeof($address) > 1) {
    # table - details
    print "<table class='ipaddress_subnet table table-noborder table-condensed' style='margin-top:10px;'>";
    # ip
    print "<tr>";
    print "\t<th>" . _('IP address') . "</th>";
    print "\t<td><strong>{$address['ip']}</strong></td>";
    print "</tr>";
Example #8
0
<?php

/**
 *	Script that resolved hostname from IP address
 */
# include required scripts
require dirname(__FILE__) . '/../../../functions/functions.php';
# initialize required objects
$Database = new Database_PDO();
$User = new User($Database);
$Subnets = new Subnets($Database);
$DNS = new DNS($Database);
# verify that user is logged in
$User->check_user_session();
# fetch subnet
$subnet = $Subnets->fetch_subnet("id", $_POST['subnetId']);
$nsid = $subnet === false ? false : $subnet->nameserverId;
# resolve
$hostname = $DNS->resolve_address($_POST['ipaddress'], false, true, 0);
# print result
print $hostname['name'];
Example #9
0
<?php

/**
 *	Script that resolved hostname from IP address
 */
# include required scripts
require dirname(__FILE__) . '/../../../functions/functions.php';
# initialize required objects
$Database = new Database_PDO();
$User = new User($Database);
$DNS = new DNS($Database);
# verify that user is logged in
$User->check_user_session();
# create object
$address = new StdClass();
$address->ip_addr = $_POST['ipaddress'];
$address->dns_name = null;
# resolve
$hostname = $DNS->resolve_address($address, true);
# print result
print $hostname['name'];