}
        # booleans can be only 0 and 1
        if ($field['type'] == "tinyint(1)") {
            if ($address[$field['name']] > 1) {
                $address[$field['name']] = "";
            }
        }
        # null custom fields not permitted
        if ($field['Null'] == "NO" && strlen($address[$field['name']]) == 0) {
            $Result->show("danger", $field['name'] . _(" can not be empty!"), true);
        }
    }
}
# we need old address details for mailing or if we are editing address
if ($action == "edit" || $action == "delete" || $action == "move") {
    $address_old = (array) $Addresses->fetch_address(null, $address['id']);
}
# set excludePing value
$address['excludePing'] = @$address['excludePing'] == 1 ? 1 : 0;
# no strict checks flag - for range networks and /31, /32
$not_strict = @$address['nostrict'] == "yes" ? true : false;
# check if subnet is multicast
$subnet_is_multicast = $Subnets->is_multicast($subnet['subnet']);
# are we adding/editing range?
if (strlen(strstr($address['ip_addr'], "-")) > 0) {
    # set flag for updating
    $address['type'] = "series";
    # remove possible spaces
    $address['ip_addr'] = str_replace(" ", "", $address['ip_addr']);
    # get start and stop of range
    $range = explode("-", $address['ip_addr']);
Example #2
0
require dirname(__FILE__) . '/../../../functions/functions.php';
# initialize required objects
$Database = new Database_PDO();
$Result = new Result();
$User = new User($Database);
$Subnets = new Subnets($Database);
$Tools = new Tools($Database);
$Addresses = new Addresses($Database);
# verify that user is logged in
$User->check_user_session();
# id must be numeric
is_numeric($_POST['id']) || strlen($_POST['id']) == 0 ?: $Result->show("danger", _("Invalid ID"), true);
# get IP address id
$id = $_POST['id'];
# fetch address, subnet, vlan and nameservers
$address = (array) $Addresses->fetch_address(null, $id);
$subnet = (array) $Subnets->fetch_subnet(null, $address['subnetId']);
$vlan = (array) $Tools->fetch_object("vlans", "vlanId", $subnet['vlanId']);
$nameservers = (array) $Tools->fetch_object("nameservers", "id", $subnet['nameserverId']);
# get all custom fields
$custom_fields = $Tools->fetch_custom_fields('ipaddresses');
# checks
sizeof($address) > 0 ?: $Result->show("danger", _("Invalid ID"), true);
sizeof($subnet) > 0 ?: $Result->show("danger", _("Invalid subnet"), true);
# set title
$title = _('IP address details') . ' :: ' . $address['ip'];
# address
$content[] = "• " . _('IP address') . ": \t\t {$address['ip']}/{$subnet['mask']}";
# description
empty($address['description']) ?: ($content[] = "• " . _('Description') . ":\t\t {$address['description']}");
# hostname
Example #3
0
$Result = new Result();
$User = new User($Database);
$Subnets = new Subnets($Database);
$Tools = new Tools($Database);
$Addresses = new Addresses($Database);
$Ping = new Scan($Database, $User->settings);
# verify that user is logged in
$User->check_user_session();
# validate post
is_numeric($_POST['subnetId']) ?: $Result->show("danger", _("Invalid ID"), true);
is_numeric($_POST['id']) || strlen($_POST['id']) == 0 ?: $Result->show("danger", _("Invalid ID"), true);
# set and check permissions
$subnet_permission = $Subnets->check_permission($User->user, $_POST['subnetId']);
$subnet_permission > 2 ?: $Result->show("danger", _('Cannot edit IP address details') . '! <br>' . _('You do not have write access for this network'), true, true);
# fetch address
$address = (array) $Addresses->fetch_address(null, $_POST['id']);
# try to ping it
$pingRes = $Ping->ping_address($address['ip']);
# update last seen if success
if ($pingRes == 0) {
    @$Ping->ping_update_lastseen($address['id']);
}
?>

<!-- header -->
<div class="pHeader"><?php 
print _('Ping check result');
?>
</div>

<!-- content -->