<?php if (!isset($initok)) { echo "do not run this script directly"; exit; } if (!isset($userdata) || $userdata[0]['usertype'] == 1) { echo "You must have Admin (Full Access) to access this page"; exit; } /* Spiros Ioannou 2009-2010 , sivann _at_ gmail.com */ if (isset($_POST['dateformat'])) { //if we came from a post (save), update the rack $sql = "UPDATE settings set companytitle='" . trim($_POST['companytitle']) . "', dateformat='" . $_POST['dateformat'] . "', currency='" . $_POST['currency'] . "', theme='" . $_POST['theme'] . "', useldap='" . $_POST['useldap'] . "', ldap_server='" . trim($_POST['ldap_server']) . "', ldap_dn='" . trim($_POST['ldap_dn']) . "', ldap_getusers='" . trim($_POST['ldap_getusers']) . "', ldap_getusers_filter='" . trim($_POST['ldap_getusers_filter']) . "', usedns='" . $_POST['usedns'] . "', dns_servers='" . trim($_POST['dns_servers']) . "', dns_suffix='" . trim($_POST['dns_suffix']) . "', dns_autoupdate='" . $_POST['dns_autoupdate'] . "'," . " lang='" . $_POST['lang'] . "', " . " timezone='" . $_POST['timezone'] . "' "; db_exec($dbh, $sql); //Update DNS Suffixes to include necessary DOT at the beginning of suffix $suffix = dns_suffix(); if (!empty($suffix)) { $newsuffix = suffix_dot($suffix); $sql = "UPDATE settings set dns_suffix='{$newsuffix}'"; db_exec($dbh, $sql); } //Update DNS server list to make sure no unneccessary spaces/commas are in the list $dnsservers = dns_servers(); if (!empty($dnsservers)) { $newdnsservers = format_dns_server_list($dnsservers); $sql = "UPDATE settings set dns_servers='{$newdnsservers}'"; db_exec($dbh, $sql); } } //save pressed /////////////////////////////
function getipv4fromdns($hostname) { //Make sure hostname is not empty if ($hostname != "") { //Get DNS Servers $dns_servers = dns_servers(); //Get DNS suffixes $suffix = dns_suffix(); //Make sure DNS server list and suffix list are not empty if (!empty($dns_servers)) { if (!empty($suffix)) { //Explode DNS suffixes $suffix_array = explode(',', $suffix); //Build array for hostnames with every suffix and without suffix foreach ($suffix_array as $suffix) { $hostname_array .= $hostname . $suffix . ","; } } $hostname_array .= $hostname; //Explode DNS Servers $dns_servers_array = explode(',', $dns_servers); //NET DNS2 Resolver with 1 second timeout (default = 5) $r = new Net_DNS2_Resolver(array('nameservers' => $dns_servers_array)); $r->timeout = "1"; //Loop thru array to make sure every hostname+suffix combination from the array is checked against every DNS Server until (hopefully) a valid response was received $success = false; $hostname_array = explode(',', $hostname_array); foreach ($hostname_array as $hostname) { //Try DNS query and catch exceptions from NET_DNS2 $ipv4 = ""; try { $result = $r->query($hostname); $success = true; break; } catch (Net_DNS2_Exception $e) { $ipv4[0] = "DNS Verification failed! Error: " . $e->getMessage(); } } // Loop thru result array to get IP Addresses from result when DNS query succeded if ($success) { foreach ($result->answer as $rr) { if ($rr->type == 'A' && $r->isIPv4($rr->address)) { $ipv4 = $rr->address . "," . $ipv4; } } //Trim whitespaces and commas $ipv4 = trim($ipv4); $ipv4 = rtrim($ipv4, ","); //Sort IP Addresses $ipv4_array = explode(',', $ipv4); natsort($ipv4_array); $ipv4 = implode(', ', $ipv4_array); //Trim whitespaces and commas again $ipv4 = trim($ipv4); $ipv4 = rtrim($ipv4, ","); } else { $ipv4[0] = "Error! Hostname is empty, unreadable or unresolveable!"; //Give back an error due to hostname error } } else { $ipv4[0] = "Error! No DNS Servers specified under settings!"; //Give back an error due to missing dns server setting } } else { $ipv4[0] = "Error! Hostname is empty, unreadable or unresolveable!"; //Give back an error due to hostname error } return $ipv4; }