$zone = $PowerDNS->get_ptr_zone_name($subnet->ip, $subnet->mask); // try to fetch domain $domain = $PowerDNS->fetch_domain_by_name($zone); // default values $values = json_decode($User->settings->powerDNS, true); $values['name'] = $zone; // domain missing, create it and default records if ($domain === false) { // create domain $PowerDNS->domain_edit("add", array("name" => $zone, "type" => "NATIVE")); // create default records $PowerDNS->create_default_records($values); } // remove existing records and links $PowerDNS->remove_all_ptr_records($domain->id); $Addresses->ptr_unlink_subnet_addresses($subnet->id); // fetch all hosts $hosts = $Addresses->fetch_subnet_addresses($subnet->id, "ip_addr", "asc"); // create PTR records if (sizeof($hosts) > 0) { foreach ($hosts as $h) { // ignore PTR if ($h->PTRignore == "1") { $ignored[] = $h; } elseif ($Result->validate_hostname($h->dns_name) !== false) { // formulate new record $record = $PowerDNS->formulate_new_record($domain->id, $PowerDNS->get_ip_ptr_name($h->ip), "PTR", $h->dns_name, $values['ttl']); // insert record $PowerDNS->add_domain_record($record, false); // link $Addresses->ptr_link($h->id, $PowerDNS->lastId);