} # 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']);
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
$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 -->