예제 #1
0
function openvpn_validate_host($value, $name)
{
    $value = trim($value);
    if (empty($value) || !is_domain($value) && !is_ipaddr($value)) {
        return sprintf(gettext("The field '%s' must contain a valid IP address or domain name."), $name);
    }
    return false;
}
예제 #2
0
파일: core.php 프로젝트: rentalhost/core
 public function test_server()
 {
     $server = $_SERVER;
     $_SERVER['SERVER_NAME'] = 'domain.com';
     $_SERVER['SERVER_PORT'] = '80';
     $_SERVER['REQUEST_URI'] = '/core/test?fake';
     unset($_SERVER['REDIRECT_URL']);
     $this->set_prefix('is_domain');
     $this->test(1, is_domain('domain.com'));
     $this->test(2, is_domain('notdomain.com'));
     $_SERVER['HTTPS'] = 'on';
     $this->test(100, is_domain('domain.com'));
     $this->test(101, is_domain('https://domain.com'));
     unset($_SERVER['HTTPS']);
     $this->test(3, is_domain('domain.com:80'));
     $this->test(4, is_domain('domain.com:443'));
     $this->test(5, is_domain('domain.com/core/test'));
     $this->test(6, is_domain('domain.com/core/test/fake'));
     $_SERVER['SERVER_NAME'] = 'www.domain.com';
     $this->test(7, is_domain('*.domain.com'));
     $this->test(8, is_domain('www?.domain.com'));
     $this->test(9, is_domain('*?.domain.com'));
     $_SERVER['SERVER_NAME'] = 'abc.www.domain.com';
     $this->test(10, is_domain('*.domain.com'));
     $this->test(11, is_domain('www?.domain.com'));
     $this->test(12, is_domain('*?.domain.com'));
     $this->test(19, is_domain('abc.*.domain.com'));
     $this->test(20, is_domain('abc.www?.domain.com'));
     $this->test(21, is_domain('*.*.domain.com'));
     $this->test(22, is_domain('abc?.www?.domain.com'));
     $_SERVER['SERVER_NAME'] = 'sub.domain.com';
     $this->test(13, is_domain('*.domain.com'));
     $this->test(14, is_domain('www?.domain.com'));
     $this->test(15, is_domain('*?.domain.com'));
     $_SERVER['SERVER_NAME'] = 'domain.com';
     $this->test(16, is_domain('*.domain.com'));
     $this->test(17, is_domain('www?.domain.com'));
     $this->test(18, is_domain('*?.domain.com'));
     $this->test(29, is_domain('domain.com.br?'));
     $_SERVER['SERVER_NAME'] = 'domain.com.br';
     $this->test(23, is_domain('domain.com'));
     $this->test(24, is_domain('domain.com.br'));
     $this->test(25, is_domain('domain.com.*'));
     $this->test(26, is_domain('domain.com.*?'));
     $this->test(27, is_domain('domain.com.br?'));
     $this->test(28, is_domain('domain.com.us?'));
     $_SERVER = $server;
 }
예제 #3
0
function get_remote_log()
{
    global $config, $g, $postfix_dir;
    $curr_time = time();
    $log_time = date('YmdHis', $curr_time);
    if (is_array($config['installedpackages']['postfixsync'])) {
        $synctimeout = $config['installedpackages']['postfixsync']['config'][0]['synctimeout'] ?: '250';
        foreach ($config['installedpackages']['postfixsync']['config'][0]['row'] as $sh) {
            // Get remote data for enabled fetch hosts
            if ($sh['enabless'] && $sh['sync_type'] == 'fetch') {
                $sync_to_ip = $sh['ipaddress'];
                $port = $sh['syncport'];
                $username = $sh['username'] ?: 'admin';
                $password = $sh['password'];
                $protocol = $sh['syncprotocol'];
                $file = '/var/db/postfix/' . $server . '.sql';
                $error = '';
                $valid = TRUE;
                if ($password == "") {
                    $error = "Password parameter is empty. ";
                    $valid = FALSE;
                }
                if ($protocol == "") {
                    $error = "Protocol parameter is empty. ";
                    $valid = FALSE;
                }
                if (!is_ipaddr($sync_to_ip) && !is_hostname($sync_to_ip) && !is_domain($sync_to_ip)) {
                    $error .= "Misconfigured Replication Target IP Address or Hostname. ";
                    $valid = FALSE;
                }
                if (!is_port($port)) {
                    $error .= "Misconfigured Replication Target Port. ";
                    $valid = FALSE;
                }
                if ($valid) {
                    // Take care of IPv6 literal address
                    if (is_ipaddrv6($sync_to_ip)) {
                        $sync_to_ip = "[{$sync_to_ip}]";
                    }
                    $url = "{$protocol}://{$sync_to_ip}";
                    print "{$sync_to_ip} {$url}, {$port}\n";
                    $method = 'pfsense.exec_php';
                    $execcmd = "require_once('/usr/local/www/postfix.php');\n";
                    $execcmd .= '$toreturn = get_sql(' . $log_time . ');';
                    /* Assemble XMLRPC payload. */
                    $params = array(XML_RPC_encode($password), XML_RPC_encode($execcmd));
                    log_error("[postfix] Fetching sql data from {$sync_to_ip}.");
                    $msg = new XML_RPC_Message($method, $params);
                    $cli = new XML_RPC_Client('/xmlrpc.php', $url, $port);
                    $cli->setCredentials($username, $password);
                    //$cli->setDebug(1);
                    $resp = $cli->send($msg, $synctimeout);
                    $a = $resp->value();
                    $errors = 0;
                    //var_dump($sql);
                    foreach ($a as $b) {
                        foreach ($b as $c) {
                            foreach ($c as $d) {
                                foreach ($d as $e) {
                                    $update = unserialize($e['string']);
                                    print $update['day'] . "\n";
                                    if ($update['day'] != "") {
                                        create_db($update['day'] . ".db");
                                        if ($debug) {
                                            print $update['day'] . " writing from remote system to db...";
                                        }
                                        $dbhandle = sqlite_open($postfix_dir . '/' . $update['day'] . ".db", 0666, $error);
                                        //file_put_contents("/tmp/" . $key . '-' . $update['day'] . ".sql", gzuncompress(base64_decode($update['sql'])), LOCK_EX);
                                        $ok = sqlite_exec($dbhandle, gzuncompress(base64_decode($update['sql'])), $error);
                                        if (!$ok) {
                                            $errors++;
                                            die("Cannot execute query. {$error}\n" . $update['sql'] . "\n");
                                        } elseif ($debug) {
                                            print "ok\n";
                                        }
                                        sqlite_close($dbhandle);
                                    }
                                }
                            }
                        }
                    }
                    if ($errors == 0) {
                        $method = 'pfsense.exec_php';
                        $execcmd = "require_once('/usr/local/www/postfix.php');\n";
                        $execcmd .= 'flush_sql(' . $log_time . ');';
                        /* Assemble XMLRPC payload. */
                        $params = array(XML_RPC_encode($password), XML_RPC_encode($execcmd));
                        log_error("[postfix] Flushing sql buffer file from {$sync_to_ip}.");
                        $msg = new XML_RPC_Message($method, $params);
                        $cli = new XML_RPC_Client('/xmlrpc.php', $url, $port);
                        $cli->setCredentials($username, $password);
                        //$cli->setDebug(1);
                        $resp = $cli->send($msg, $synctimeout);
                    }
                } else {
                    log_error("[postfix] Fetch sql database from '{$sync_to_ip}' aborted due to the following error(s): {$error}");
                }
            }
        }
        log_error("[postfix] Fetch sql database completed.");
    }
}
예제 #4
0
 }
 if (isset($_POST['wpa_gmk_rekey']) && (!is_numericint($_POST['wpa_gmk_rekey']) || $_POST['wpa_gmk_rekey'] < 1 || $_POST['wpa_gmk_rekey'] > 9999)) {
     $input_errors[] = gettext("Master Key Regeneration must be an integer between 1 and 9999.");
 }
 if (isset($_POST['wpa_group_rekey']) && isset($_POST['wpa_gmk_rekey'])) {
     if ($_POST['wpa_group_rekey'] > $_POST['wpa_gmk_rekey']) {
         $input_errors[] = gettext("Master Key Regeneration must be greater than Key Rotation.");
     }
 }
 if (!empty($_POST['auth_server_addr'])) {
     if (!is_domain($_POST['auth_server_addr']) && !is_ipaddr($_POST['auth_server_addr'])) {
         $input_errors[] = gettext("802.1X Authentication Server must be an IP or hostname.");
     }
 }
 if (!empty($_POST['auth_server_addr2'])) {
     if (!is_domain($_POST['auth_server_addr2']) && !is_ipaddr($_POST['auth_server_addr2'])) {
         $input_errors[] = gettext("Secondary 802.1X Authentication Server must be an IP or hostname.");
     }
 }
 if (!empty($_POST['auth_server_port'])) {
     if (!is_port($_POST['auth_server_port'])) {
         $input_errors[] = gettext("802.1X Authentication Server Port must be a valid port number (1-65535).");
     }
 }
 if (!empty($_POST['auth_server_port2'])) {
     if (!is_port($_POST['auth_server_port2'])) {
         $input_errors[] = gettext("Secondary 802.1X Authentication Server Port must be a valid port number (1-65535).");
     }
 }
 if (isset($_POST['channel']) && !is_numericint($_POST['channel'])) {
     if (!is_numericint($_POST['channel'])) {
예제 #5
0
     $pconfig['user_source'] = implode(",", $pconfig['user_source']);
 }
 /* input validation */
 $reqdfields = explode(" ", "user_source group_source");
 $reqdfieldsn = array(gettext("User Authentication Source"), gettext("Group Authentication Source"));
 do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
 if (!empty($pconfig['pool_address']) && !is_ipaddr($pconfig['pool_address'])) {
     $input_errors[] = gettext("A valid IP address for 'Virtual Address Pool Network' must be specified.");
 }
 if (!empty($pconfig['dns_domain']) && !is_domain($pconfig['dns_domain'])) {
     $input_errors[] = gettext("A valid value for 'DNS Default Domain' must be specified.");
 }
 if (!empty($pconfig['dns_split'])) {
     $domain_array = preg_split("/[ ,]+/", $pconfig['dns_split']);
     foreach ($domain_array as $curdomain) {
         if (!is_domain($curdomain)) {
             $input_errors[] = gettext("A valid split DNS domain list must be specified.");
             break;
         }
     }
 }
 if (!empty($pconfig['dns_server1']) && !is_ipaddr($pconfig['dns_server1'])) {
     $input_errors[] = gettext("A valid IP address for 'DNS Server #1' must be specified.");
 }
 if (!empty($pconfig['dns_server2']) && !is_ipaddr($pconfig['dns_server2'])) {
     $input_errors[] = gettext("A valid IP address for 'DNS Server #2' must be specified.");
 }
 if (!empty($pconfig['dns_server3']) && !is_ipaddr($pconfig['dns_server3'])) {
     $input_errors[] = gettext("A valid IP address for 'DNS Server #3' must be specified.");
 }
 if (!empty($pconfig['dns_server4']) && !is_ipaddr($pconfig['dns_server4'])) {
예제 #6
0
    $pconfig['host'] = $a_hosts[$id]['host'];
    $pconfig['domain'] = $a_hosts[$id]['domain'];
    $pconfig['ip'] = $a_hosts[$id]['ip'];
    $pconfig['descr'] = $a_hosts[$id]['descr'];
}
if ($_POST) {
    unset($input_errors);
    $pconfig = $_POST;
    /* input validation */
    $reqdfields = explode(" ", "domain ip");
    $reqdfieldsn = array(gettext("Domain"), gettext("IP address"));
    do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
    if ($_POST['host'] && !is_hostname($_POST['host'])) {
        $input_errors[] = gettext("The hostname can only contain the characters A-Z, 0-9 and '-'.");
    }
    if ($_POST['domain'] && !is_domain($_POST['domain'])) {
        $input_errors[] = gettext("A valid domain must be specified.");
    }
    if ($_POST['ip'] && !is_ipaddr($_POST['ip'])) {
        $input_errors[] = gettext("A valid IP address must be specified.");
    }
    /* check for overlaps */
    foreach ($a_hosts as $hostent) {
        if (isset($id) && $a_hosts[$id] && $a_hosts[$id] === $hostent) {
            continue;
        }
        if ($hostent['host'] == $_POST['host'] && $hostent['domain'] == $_POST['domain'] && (is_ipaddrv4($hostent['ip']) && is_ipaddrv4($_POST['ip']) || is_ipaddrv6($hostent['ip']) && is_ipaddrv6($_POST['ip']))) {
            $input_errors[] = gettext("This host/domain already exists.");
            break;
        }
    }
예제 #7
0
 }
 /* normalize MAC addresses - lowercase and convert Windows-ized hyphenated MACs to colon delimited */
 $_POST['spoofmac'] = strtolower(str_replace("-", ":", $_POST['spoofmac']));
 if ($_POST['ipaddr'] && !is_ipaddr($_POST['ipaddr'])) {
     $input_errors[] = "Geçerli bir IP adresi tanımlanmalıdır.";
 }
 if ($_POST['subnet'] && !is_numeric($_POST['subnet'])) {
     $input_errors[] = "Geçerli bir subnet bit count tanımlanmalıdır.";
 }
 if ($_POST['gateway'] && !is_ipaddr($_POST['gateway'])) {
     $input_errors[] = "Geçerli bir ağ geçidi tanımlanmalıdır.";
 }
 if ($_POST['pointtopoint'] && !is_ipaddr($_POST['pointtopoint'])) {
     $input_errors[] = "Geçerli bir point-to-point IP adresi tanımlanmalıdır.";
 }
 if ($_POST['provider'] && !is_domain($_POST['provider'])) {
     $input_errors[] = "Servis adı geçersiz karakterler içeriyor.";
 }
 if ($_POST['pppoe_idletimeout'] != "" && !is_numericint($_POST['pppoe_idletimeout'])) {
     $input_errors[] = "idle timeout değeri bir tamsayı olmak zorundadır.";
 }
 if ($_POST['pppoe_resethour'] != "" && !is_numericint($_POST['pppoe_resethour']) && $_POST['pppoe_resethour'] >= 0 && $_POST['pppoe_resethour'] <= 23) {
     $input_errors[] = gettext("PPPoE yeniden başlatma saati (0-23) arasında olmalıdır.");
 }
 if ($_POST['pppoe_resetminute'] != "" && !is_numericint($_POST['pppoe_resetminute']) && $_POST['pppoe_resetminute'] >= 0 && $_POST['pppoe_resetminute'] <= 59) {
     $input_errors[] = gettext("PPPoE yeniden başlatma dakikası (0-59) arasında olmalıdır.");
 }
 if ($_POST['pppoe_resetdate'] != "" && !is_numeric(str_replace("/", "", $_POST['pppoe_resetdate']))) {
     $input_errors[] = gettext("PPPoE yeniden başlatma tarih değeri (mm/dd/yyyy) bu şekilde tanımlanmalıdır.");
 }
 if ($_POST['pptp_local'] && !is_ipaddr($_POST['pptp_local'])) {
예제 #8
0
     }
 }
 if ($_POST['p1myidentt'] == "address" && !is_ipaddr($_POST['p1myident'])) {
     $input_errors[] = "Tanımlayıcıya ait geçerli bir IP adresi tanımlanmalıdır.";
 }
 if ($_POST['p1myidentt'] == "fqdn" && !is_domain($_POST['p1myident'])) {
     $input_errors[] = "Tanımlayıcıda geçerli bir alan adı olmalıdır.";
 }
 if ($_POST['p1myidentt'] == "user_fqdn") {
     $ufqdn = explode("@", $_POST['p1myident']);
     if (is_domain($ufqdn[1]) == false) {
         $input_errors[] = "A valid User FQDN in the form of user@my.domain.com for 'My identifier' must be specified.";
     }
 }
 if ($_POST['p1myidentt'] == "dyn_dns") {
     if (is_domain($_POST['p1myidentt']) == false) {
         $input_errors[] = "A valid Dynamic DNS address for 'My identifier' must be specified.";
     }
 }
 if ($_POST['p1myidentt'] == "fqdn" and $_POST['p1myident'] == "") {
     $input_errors[] = gettext("Tanımlayıcıya geçerli bir alan adı yazınız.");
 }
 if ($_POST['p1myidentt'] == "dyn_dns" and $_POST['p1myident'] == "") {
     $input_errors[] = gettext("Tanımlayıcıya geçerli bir alan adı yazınız.");
 }
 if ($_POST['p1myidentt'] == "address" and $_POST['p1myident'] == "") {
     $input_errors[] = gettext("Tanımlayıcıya geçerli bir alan adı yazınız.");
 }
 if ($_POST['p1myidentt'] == "user_fqdn" and $_POST['p1myident'] == "") {
     $input_errors[] = gettext("Tanımlayıcıya geçerli bir alan adı yazınız.");
 }
예제 #9
0
 function update_whois($client_id = 0, $second_level_domain = '')
 {
     $result = '';
     if (!empty($client_id) && !empty($second_level_domain)) {
         $CI =& get_instance();
         $CI->load->model('model_site_whois');
         if (is_domain($second_level_domain) && (empty($stat_date) || (mktime() - $stat_date) / (24 * 60 * 60) > get_app_var('DEFAULT_WHOIS_UPDATE_DAYS'))) {
             $whois_api = get_app_var('WHOIS_API');
             $whois_username = get_app_var('WHOIS_USERNAME');
             $whois_password = get_app_var('WHOIS_PASSWORD');
             $tries = 0;
             $contents = '';
             while ($tries < 3 && !$contents) {
                 $contents = @file_get_contents($whois_api . '?domainName=' . $second_level_domain . '&username='******'&password='******'&outputFormat=JSON');
                 if ($contents) {
                     $whois = json_decode($contents, true);
                     if (isset($whois['WhoisRecord']) && !empty($whois['WhoisRecord'])) {
                         // Pick up all sites for this client with this second level domain
                         $sites = $this->get_records(array('client_id' => $client_id, 'second_level_domain' => $second_level_domain));
                         if (!empty($sites)) {
                             foreach ($sites as $site) {
                                 $site_whois = array();
                                 $site_whois['site_id'] = $site['site_id'];
                                 $site_whois['client_id'] = $client_id;
                                 $site_whois['stat_date'] = mktime();
                                 $CI->model_site_whois->delete($site_whois);
                                 if (isset($whois['WhoisRecord']['registrarName'])) {
                                     $site_whois['registrar'] = trim($whois['WhoisRecord']['registrarName']);
                                 }
                                 if (isset($whois['WhoisRecord']['registryData']['expiresDate'])) {
                                     if (!empty($whois['WhoisRecord']['registryData']['expiresDate'])) {
                                         $site_whois['expiry_date'] = date('d/m/Y', strtotime($whois['WhoisRecord']['registryData']['expiresDate']));
                                     }
                                 }
                                 if (isset($whois['WhoisRecord']['registrant']['name'])) {
                                     $site_whois['registrant_name'] = $whois['WhoisRecord']['registrant']['name'];
                                 } elseif (isset($whois['WhoisRecord']['registryData']['registrant']['name'])) {
                                     $site_whois['registrant_name'] = $whois['WhoisRecord']['registryData']['registrant']['name'];
                                 }
                                 if (isset($whois['WhoisRecord']['registrant']['email'])) {
                                     $site_whois['registrant_email'] = $whois['WhoisRecord']['registrant']['email'];
                                 } elseif (isset($whois['WhoisRecord']['registryData']['registrant']['email'])) {
                                     $site_whois['registrant_email'] = $whois['WhoisRecord']['registryData']['registrant']['email'];
                                 }
                                 if (isset($whois['WhoisRecord']['registryData']['nameServers']['hostNames'])) {
                                     $site_whois['name_servers'] = implode(', ', $whois['WhoisRecord']['registryData']['nameServers']['hostNames']);
                                 }
                                 if (isset($whois['WhoisRecord']['domainNameExt'])) {
                                     $site_whois['tld'] = $whois['WhoisRecord']['domainNameExt'];
                                 }
                                 $CI->model_site_whois->save($site_whois);
                             }
                         }
                     } elseif (isset($whois['ErrorMessage'])) {
                         $result = $whois['ErrorMessage']['msg'];
                         break;
                     }
                 }
                 $tries++;
             }
         }
     }
     return $result;
 }
예제 #10
0
         $input_errors[] = "Hostname geçersiz karakterler içeriyor.";
     }
 }
 if ($_POST['mx'] && !is_domain($_POST['mx'])) {
     $input_errors[] = "MX geçersiz karakterler içeriyor.";
 }
 if ($_POST['username'] && !is_dyndns_username($_POST['username'])) {
     $input_errors[] = "Kullanıcı adı geçersiz karakterler içeriyor.";
 }
 if ($_POST['dnsupdate_host'] && !is_domain($_POST['dnsupdate_host'])) {
     $input_errors[] = "DNS güncelleme hostname geçersiz karakterler içeriyor.";
 }
 if ($_POST['dnsupdate_ttl'] && !is_numericint($_POST['dnsupdate_ttl'])) {
     $input_errors[] = "DNS güncelleme TTL değeri tam sayı olmak zorundadır.";
 }
 if ($_POST['dnsupdate_keyname'] && !is_domain($_POST['dnsupdate_keyname'])) {
     $input_errors[] = "DNS güncelleme anahtar adı geçersiz karakterler içeriyor.";
 }
 if (!$input_errors) {
     $config['dyndns']['type'] = $_POST['type'];
     $config['dyndns']['username'] = $_POST['username'];
     $config['dyndns']['password'] = $_POST['password'];
     $config['dyndns']['host'] = $_POST['host'];
     $config['dyndns']['mx'] = $_POST['mx'];
     $config['dyndns']['wildcard'] = $_POST['wildcard'] ? true : false;
     $config['dyndns']['enable'] = $_POST['enable'] ? true : false;
     $config['dnsupdate']['enable'] = $_POST['dnsupdate_enable'] ? true : false;
     $config['dnsupdate']['host'] = $_POST['dnsupdate_host'];
     $config['dnsupdate']['server'] = $_POST['dnsupdate_server'];
     $config['dnsupdate']['ttl'] = $_POST['dnsupdate_ttl'];
     $config['dnsupdate']['keyname'] = $_POST['dnsupdate_keyname'];
예제 #11
0
<?php

error_reporting(0);
define('IN_SEO', TRUE);
set_time_limit(0);
isset($_SERVER['HTTP_REFERER']) or exit('Invalid Request');
preg_match("/" . $_SERVER['HTTP_HOST'] . "/i", $_SERVER['HTTP_REFERER']) or exit('Access Denied');
header("Content-Type:text/html;charset=gb2312");
include '../robot.php';
require 'function.php';
@extract($_POST);
$domain = $domain ? $domain : '34ways.com';
$domain = strtolower($domain);
is_domain($domain) or exit;
$result = '';
if ($che) {
    $result = get_seo_info($domain, $che);
}
if ($domain) {
    @(require_once '../cache.php');
    if (file_exists("../cache/ssyqsl.php")) {
        @(require_once "../cache/ssyqsl.php");
        $urls = filehave($urls, $domain);
    } else {
        $urls = fileno($domain);
    }
    writeover("../cache/ssyqsl.php", "<?php\r\n\$urls=" . vvar_export($urls) . ";\r\n?>");
}
echo $result;
예제 #12
0
function whois($host)
{
    if (filter_var($host, FILTER_VALIDATE_IP) || filter_var(gethostbyname($host), FILTER_VALIDATE_IP) || is_domain($host)) {
        run_shell_cmd('timeout 30 /usr/bin/whois %s', $host . ' ' . $server);
    } else {
        error(4);
    }
}
예제 #13
0
 }
 if ($_POST['p1lifetime'] && !is_numeric($_POST['p1lifetime'])) {
     $input_errors[] = "P1 yaşam zamanı sayılabilir bir sayısal değer olmalıdır.";
 }
 if ($_POST['p2lifetime'] && !is_numeric($_POST['p2lifetime'])) {
     $input_errors[] = "P2 yaşam zamanı sayılabilir bir değer olmalıdır.";
 }
 if ($_POST['p1myidentt'] == "address" && !is_ipaddr($_POST['p1myident'])) {
     $input_errors[] = "Tanımlayıcım bilgisi için geçerli bir IP adresi tanımlanmalıdır.";
 }
 if ($_POST['p1myidentt'] == "fqdn" && !is_domain($_POST['p1myident'])) {
     $input_errors[] = "Tanımlayıcım bilgisi için geçerli bir alan adı tanımlanmalıdır.";
 }
 if ($_POST['p1myidentt'] == "user_fqdn") {
     $ufqdn = explode("@", $_POST['p1myident']);
     if (!is_domain($ufqdn[1])) {
         $input_errors[] = "Tanımlayıcım alanı için geçerli bir FQDN kullanıcısı tanımlanmadır.";
     }
 }
 if ($_POST['p1myidentt'] == "myaddress") {
     $_POST['p1myident'] = "";
 }
 if (!$input_errors) {
     $ipsecent = array();
     $ipsecent['enable'] = $_POST['enable'] ? true : false;
     $ipsecent['p1']['mode'] = $_POST['p1mode'];
     $ipsecent['natt'] = $_POST['natt'] ? true : false;
     $ipsecent['p1']['myident'] = array();
     switch ($_POST['p1myidentt']) {
         case 'myaddress':
             $ipsecent['p1']['myident']['myaddress'] = true;
예제 #14
0
<?php

error_reporting(0);
$hu = 'friends';
eval('$__file__=__FILE__;');
define('ROOT_PATH', $__file__ ? dirname($__file__) . '/' : './');
require '../global.php';
$ulink = $urlsname = $name = $outs = $ali = $pic = $ati = array();
$domain = $_POST['domain'] ? $_POST['domain'] : trim($_GET['domain']);
if ($domain) {
    is_domain($domain) or exit("<script language='javascript'>alert(\"请输入正确的域名,例如:34ways.com\");setTimeout(\"window.location='friends.php?domain=34ways.com'\",0);</script>");
    $cnt = 0;
    while ($cnt < 10 && ($code = @file_get_contents('http://' . $domain)) === FALSE) {
        $cnt++;
    }
    $charset = "/charset=(.*)/";
    preg_match($charset, $code, $charsetarr);
    $charset2 = strtolower(substr($charsetarr[1], 0, 2));
    if ($charset2 != 'gb') {
        require_once 'require/chinese.php';
        $chs = new Chinese('utf-8', 'GB2312');
        $code = $chs->Convert($code);
    }
    $pat1 = "/<a(.*?)<\\/a>/i";
    preg_match_all($pat1, $code, $array);
    $urlsname = $array[0];
    $pq = '/ href=["\']?([^>"\' ]+)["\']?\\s*[^>]*>(.*)<\\/a>/si';
    for ($i = 0; $i < sizeof($urlsname); $i++) {
        preg_match($pq, $urlsname[$i], $b);
        if ($b[2] && strpos($b[1], 'javascript') === false) {
            if (strpos($b[2], 'img') !== false) {
    </head>
<body class="fullscreenbody"><?php 
$domain = explode(".", $_SERVER["HTTP_HOST"]);
array_shift($domain);
$mydomain = implode(".", $domain);
?>
<div id="homediv" class="runner-text"><a href="http://<?php 
echo $mydomain;
?>
/"><i class="fa fa-chevron-left fa-2x"></i><i class="fa fa-home fa-2x"></i></a></div>
<div class="verticalcenter">
	<div class="text-center col-xs-10 col-xs-offset-1">
		<div id="subdomain-leader" class="leader-text"><i class="fa fa-globe fa-2x"></i><br />Domainwatch</div>
		<hr class="separator"/>
<?php 
if (!isset($_POST["domain"]) || !is_domain($_POST["domain"])) {
    ?>
		<div class="col-xs-6 col-xs-offset-3">
<?php 
    if (isset($_POST["domain"])) {
        ?>
		<div class="alert alert-danger">The domain was not considered valid.  Please try again.</div>
<?php 
    }
    ?>
		<form id="domainInput" method="post">
			<div class="container-fluid">
			<div class="col-xs-12 col-sm-10"><input type="text" class="form-control" style="border: 0px solid #000000; border-bottom-width: 1px; background-color: transparent; box-shadow: none; -webkit-box-shadow: none;" placeholder="Enter a domain ." name="domain"<?php 
    if (isset($_POST["domain"])) {
        echo ' value="' . htmlspecialchars($_POST['domain']) . '"';
    }
예제 #16
0
         foreach ($config['gateways']['gateway_item'] as $gateway) {
             if (in_array($pconfig['gateway'], $gateway)) {
                 $match = true;
             }
         }
         foreach ($config['gateways']['gateway_item'] as $gateway) {
             if (in_array($pconfig['gatewayv6'], $gateway)) {
                 $match = true;
             }
         }
     }
     if (!$match) {
         $input_errors[] = gettext("A valid gateway must be specified.");
     }
 }
 if (!empty($pconfig['provider']) && !is_domain($pconfig['provider'])) {
     $input_errors[] = gettext("The service name contains invalid characters.");
 }
 if (!empty($pconfig['pppoe_idletimeout']) && !is_numericint($pconfig['pppoe_idletimeout'])) {
     $input_errors[] = gettext("The idle timeout value must be an integer.");
 }
 if (!empty($pconfig['pppoe-reset-type'])) {
     if (!empty($pconfig['pppoe_resethour']) && (!is_numericint($pconfig['pppoe_resethour']) || $pconfig['pppoe_resethour'] < 0 || $pconfig['pppoe_resethour'] > 23)) {
         $input_errors[] = gettext("A valid PPPoE reset hour must be specified (0-23).");
     }
     if (!empty($pconfig['pppoe_resetminute']) && (!is_numericint($pconfig['pppoe_resetminute']) || $pconfig['pppoe_resetminute'] < 0 || $pconfig['pppoe_resetminute'] > 59)) {
         $input_errors[] = gettext("A valid PPPoE reset minute must be specified (0-59).");
     }
     if (!empty($pconfig['pppoe_resetdate']) && !is_numeric(str_replace("/", "", $pconfig['pppoe_resetdate']))) {
         $input_errors[] = gettext("A valid PPPoE reset date must be specified (mm/dd/yyyy).");
     }
예제 #17
0
         $input_errors[] = gettext("Please enter a user and fully qualified domain name for 'Peer Identifier'");
     }
     if ($pconfig['peerid_type'] == "address" && !is_ipaddr($pconfig['peerid_data'])) {
         $input_errors[] = gettext("A valid IP address for 'Peer identifier' must be specified.");
     }
     if ($pconfig['peerid_type'] == "fqdn" && !is_domain($pconfig['peerid_data'])) {
         $input_errors[] = gettext("A valid domain name for 'Peer identifier' must be specified.");
     }
     if ($pconfig['peerid_type'] == "fqdn") {
         if (is_domain($pconfig['peerid_data']) == false) {
             $input_errors[] = gettext("A valid FQDN for 'Peer identifier' must be specified.");
         }
     }
     if ($pconfig['peerid_type'] == "user_fqdn") {
         $user_fqdn = explode("@", $pconfig['peerid_data']);
         if (is_domain($user_fqdn[1]) == false) {
             $input_errors[] = gettext("A valid User FQDN in the form of user@my.domain.com for 'Peer identifier' must be specified.");
         }
     }
 }
 if ($pconfig['dpd_enable']) {
     if (!is_numericint($pconfig['dpd_delay'])) {
         $input_errors[] = gettext("A numeric value must be specified for DPD delay.");
     }
     if (!is_numericint($pconfig['dpd_maxfail'])) {
         $input_errors[] = gettext("A numeric value must be specified for DPD retries.");
     }
 }
 if ($pconfig['tfc_bytes'] && !is_numericint($pconfig['tfc_bytes'])) {
     $input_errors[] = gettext("A numeric value must be specified for TFC bytes.");
 }
예제 #18
0
$pconfig['enable'] = isset($config['opendns']['enable']);
$pconfig['username'] = $config['opendns']['username'];
$pconfig['password'] = $config['opendns']['password'];
$pconfig['host'] = $config['opendns']['host'];
if ($_POST) {
    unset($input_errors);
    $pconfig = $_POST;
    /* input validation */
    $reqdfields = array();
    $reqdfieldsn = array();
    if ($_POST['enable']) {
        $reqdfields = array_merge($reqdfields, explode(" ", "host username password"));
        $reqdfieldsn = array_merge($reqdfieldsn, explode(",", "Network,Username,Password"));
    }
    do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
    if ($_POST['host'] && !is_domain($_POST['host'])) {
        $input_errors[] = 'The host name contains invalid characters.';
    }
    if ($_POST['username'] && empty($_POST['username'])) {
        $input_errors[] = 'The username cannot be empty.';
    }
    if ($_POST['test']) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, sprintf('https://updates.opendns.com/nic/update?hostname=%s', $pconfig['host']));
        curl_setopt($ch, CURLOPT_USERPWD, sprintf('%s:%s', $pconfig['username'], $pconfig['password']));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        curl_close($ch);
        $test_results = explode("\r\n", $output);
    } elseif (!$input_errors) {
        $refresh = $pconfig['enable'] != $config['opendns']['enable'];
예제 #19
0
 if ($_POST['ddnsdomainkey'] && !$_POST['ddnsdomainkeyname'] || $_POST['ddnsdomainkeyname'] && !$_POST['ddnsdomainkey']) {
     $input_errors[] = gettext("Both a valid domain key and key name must be specified.");
 }
 if ($_POST['domainsearchlist']) {
     $domain_array = preg_split("/[ ;]+/", $_POST['domainsearchlist']);
     foreach ($domain_array as $curdomain) {
         if (!is_domain($curdomain)) {
             $input_errors[] = gettext("A valid domain search list must be specified.");
             break;
         }
     }
 }
 if ($_POST['ntp1'] && !is_ipaddrv4($_POST['ntp1']) || $_POST['ntp2'] && !is_ipaddrv4($_POST['ntp2'])) {
     $input_errors[] = gettext("A valid IP address must be specified for the primary/secondary NTP servers.");
 }
 if ($_POST['tftp'] && !is_ipaddrv4($_POST['tftp']) && !is_domain($_POST['tftp']) && !filter_var($_POST['tftp'], FILTER_VALIDATE_URL)) {
     $input_errors[] = gettext("A valid IP address, hostname or URL must be specified for the TFTP server.");
 }
 if ($_POST['nextserver'] && !is_ipaddrv4($_POST['nextserver'])) {
     $input_errors[] = gettext("A valid IP address must be specified for the network boot server.");
 }
 if (!$input_errors) {
     $mapent = array();
     $mapent['mac'] = $_POST['mac'];
     $mapent['cid'] = $_POST['cid'];
     $mapent['ipaddr'] = $_POST['ipaddr'];
     $mapent['hostname'] = $_POST['hostname'];
     $mapent['descr'] = $_POST['descr'];
     $mapent['arp_table_static_entry'] = $_POST['arp_table_static_entry'] ? true : false;
     $mapent['filename'] = $_POST['filename'];
     $mapent['rootpath'] = $_POST['rootpath'];
예제 #20
0
<?php

error_reporting(0);
define('IN_SEO', TRUE);
header("Content-Type:text/html;charset=gb2312");
require 'function.php';
set_time_limit(0);
isset($_SERVER['HTTP_REFERER']) or exit('Invalid Request');
preg_match("/" . $_SERVER['HTTP_HOST'] . "/i", $_SERVER['HTTP_REFERER']) or exit('Access Denied');
$ROBOT['site_url'] = 'http://www.baidu.com/s?wd=site%3A';
$ROBOT['site_pattern'] = "/找到相关网页(.*)篇/";
@extract($_POST);
$domain = $domain ? $domain : '34ways.com';
@(require_once '../cache.php');
if (file_exists("../cache/baidu.php")) {
    @(require_once "../cache/baidu.php");
    $urls = filehave($urls, $domain);
} else {
    $urls = fileno($domain);
}
writeover("../cache/baidu.php", "<?php\r\n\$urls=" . vvar_export($urls) . ";\r\n?>");
isset($domain) or exit('非法操作!');
$domain = strtolower($domain);
is_domain($domain) or exit('请输入正确的域名!');
$result = get_seo_info($domain, $selects, $pn);
echo $result;
예제 #21
0
     if (empty($pconfig['local_port']) || !is_numeric($pconfig['local_port']) || $pconfig['local_port'] < 0 || $pconfig['local_port'] > 65535) {
         $input_errors[] = "The field Local port must contain a valid port, ranging from 0 to 65535.";
     }
     $portused = openvpn_port_used($pconfig['protocol'], $pconfig['interface'], $pconfig['local_port'], $vpnid);
     if ($portused != $vpnid && $portused != 0) {
         $input_errors[] = gettext("The specified 'Local port' is in use. Please select another value");
     }
 }
 if (empty($pconfig['server_addr']) || !is_domain($pconfig['server_addr']) && !is_ipaddr($pconfig['server_addr'])) {
     $input_errors[] = gettext("The field Server host or address must contain a valid IP address or domain name.");
 }
 if (empty($pconfig['server_port']) || !is_numeric($pconfig['server_port']) || $pconfig['server_port'] < 0 || $pconfig['server_port'] > 65535) {
     $input_errors[] = "The field Server port must contain a valid port, ranging from 0 to 65535.";
 }
 if (!empty($pconfig['proxy_addr'])) {
     if (empty($pconfig['proxy_addr']) || !is_domain($pconfig['proxy_addr']) && !is_ipaddr($pconfig['proxy_addr'])) {
         $input_errors[] = gettext("The field Proxy host or address must contain a valid IP address or domain name.");
     }
     if (empty($pconfig['proxy_port']) || !is_numeric($pconfig['proxy_port']) || $pconfig['proxy_port'] < 0 || $pconfig['proxy_port'] > 65535) {
         $input_errors[] = "The field Proxy port must contain a valid port, ranging from 0 to 65535.";
     }
     if (isset($pconfig['proxy_authtype']) && $pconfig['proxy_authtype'] != "none") {
         if (empty($pconfig['proxy_user']) || empty($pconfig['proxy_passwd'])) {
             $input_errors[] = gettext("User name and password are required for proxy with authentication.");
         }
     }
 }
 if (!empty($pconfig['tunnel_network'])) {
     if ($result = openvpn_validate_cidr($pconfig['tunnel_network'], 'IPv4 Tunnel Network', false, "ipv4")) {
         $input_errors[] = $result;
     }
예제 #22
0
}
if ($_POST['submit']) {
    unset($input_errors);
    $pconfig = $_POST;
    /* input consolidation */
    /* input validation */
    $reqdfields = explode(" ", "user_source group_source");
    $reqdfieldsn = array(gettext("User Authentication Source"), gettext("Group Authentication Source"));
    do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
    if ($pconfig['pool_enable']) {
        if (!is_ipaddr($pconfig['pool_address'])) {
            $input_errors[] = gettext("A valid IP address for 'Virtual Address Pool Network' must be specified.");
        }
    }
    if ($pconfig['dns_domain_enable']) {
        if (!is_domain($pconfig['dns_domain'])) {
            $input_errors[] = gettext("A valid value for 'DNS Default Domain' must be specified.");
        }
    }
    if ($pconfig['dns_server_enable']) {
        if (!$pconfig['dns_server1'] && !$pconfig['dns_server2'] && !$pconfig['dns_server3'] && !$pconfig['dns_server4']) {
            $input_errors[] = gettext("At least one DNS server must be specified to enable the DNS Server option.");
        }
        if ($pconfig['dns_server1'] && !is_ipaddr($pconfig['dns_server1'])) {
            $input_errors[] = gettext("A valid IP address for 'DNS Server #1' must be specified.");
        }
        if ($pconfig['dns_server2'] && !is_ipaddr($pconfig['dns_server2'])) {
            $input_errors[] = gettext("A valid IP address for 'DNS Server #2' must be specified.");
        }
        if ($pconfig['dns_server3'] && !is_ipaddr($pconfig['dns_server3'])) {
            $input_errors[] = gettext("A valid IP address for 'DNS Server #3' must be specified.");
예제 #23
0
if ($_POST) {
    unset($input_errors);
    $pconfig = $_POST;
    /* input validation */
    $reqdfields = array();
    $reqdfieldsn = array();
    $reqdfields = array_merge($reqdfields, explode(" ", "host ttl keyname keydata"));
    $reqdfieldsn = array_merge($reqdfieldsn, array(gettext("Hostname"), gettext("TTL"), gettext("Key name"), gettext("Key")));
    do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
    if ($_POST['host'] && !is_domain($_POST['host'])) {
        $input_errors[] = gettext("The DNS update host name contains invalid characters.");
    }
    if ($_POST['ttl'] && !is_numericint($_POST['ttl'])) {
        $input_errors[] = gettext("The DNS update TTL must be an integer.");
    }
    if ($_POST['keyname'] && !is_domain($_POST['keyname'])) {
        $input_errors[] = gettext("The DNS update key name contains invalid characters.");
    }
    if (!$input_errors) {
        $rfc2136 = array();
        $rfc2136['enable'] = $_POST['enable'] ? true : false;
        $rfc2136['host'] = $_POST['host'];
        $rfc2136['ttl'] = $_POST['ttl'];
        $rfc2136['keyname'] = $_POST['keyname'];
        $rfc2136['keytype'] = $_POST['keytype'];
        $rfc2136['keydata'] = $_POST['keydata'];
        $rfc2136['server'] = $_POST['server'];
        $rfc2136['usetcp'] = $_POST['usetcp'] ? true : false;
        $rfc2136['usepublicip'] = $_POST['usepublicip'] ? true : false;
        $rfc2136['recordtype'] = $_POST['recordtype'];
        $rfc2136['interface'] = $_POST['interface'];
 $pconfig['aliases']['item'] = $aliases;
 /* validate aliases */
 foreach ($aliases as $idx => $alias) {
     $aliasreqdfields = array('aliasdomain' . $idx);
     $aliasreqdfieldsn = array(gettext("Alias Domain"));
     do_input_validation($_POST, $aliasreqdfields, $aliasreqdfieldsn, $input_errors);
     if ($alias['host']) {
         if (!is_hostname($alias['host'])) {
             $input_errors[] = gettext("Hostnames in an alias list can only contain the characters A-Z, 0-9 and '-'. They may not start or end with '-'.");
         } else {
             if (!is_unqualified_hostname($alias['host'])) {
                 $input_errors[] = gettext("A valid alias hostname is specified, but the domain name part should be omitted");
             }
         }
     }
     if ($alias['domain'] && !is_domain($alias['domain'])) {
         $input_errors[] = gettext("A valid domain must be specified in alias list.");
     }
 }
 /* check for overlaps */
 foreach ($a_hosts as $hostent) {
     if (isset($id) && $a_hosts[$id] && $a_hosts[$id] === $hostent) {
         continue;
     }
     if ($hostent['host'] == $_POST['host'] && $hostent['domain'] == $_POST['domain'] && (is_ipaddrv4($hostent['ip']) && is_ipaddrv4($_POST['ip']) || is_ipaddrv6($hostent['ip']) && is_ipaddrv6($_POST['ip']))) {
         $input_errors[] = gettext("This host/domain already exists.");
         break;
     }
 }
 if (!$input_errors) {
     $hostent = array();
예제 #25
0
     $dnsgwitem = "dns{$dnscounter}gw";
     if ($_POST[$dnsgwitem]) {
         if (interface_has_gateway($_POST[$dnsgwitem])) {
             foreach ($direct_networks_list as $direct_network) {
                 if (ip_in_subnet($_POST[$dnsitem], $direct_network)) {
                     $input_errors[] = sprintf(gettext("A gateway can not be assigned to DNS '%s' server which is on a directly connected network."), $_POST[$dnsitem]);
                 }
             }
         }
     }
 }
 # it's easy to have a little too much whitespace in the field, clean it up for the user before processing.
 $_POST['timeservers'] = preg_replace('/[[:blank:]]+/', ' ', $_POST['timeservers']);
 $_POST['timeservers'] = trim($_POST['timeservers']);
 foreach (explode(' ', $_POST['timeservers']) as $ts) {
     if (!is_domain($ts)) {
         $input_errors[] = gettext("A NTP Time Server name may only contain the characters a-z, 0-9, '-' and '.'.");
     }
 }
 if (!$input_errors) {
     update_if_changed("hostname", $config['system']['hostname'], $_POST['hostname']);
     update_if_changed("domain", $config['system']['domain'], $_POST['domain']);
     update_if_changed("timezone", $config['system']['timezone'], $_POST['timezone']);
     update_if_changed("NTP servers", $config['system']['timeservers'], strtolower($_POST['timeservers']));
     if ($_POST['language'] && $_POST['language'] != $config['system']['language']) {
         $config['system']['language'] = $_POST['language'];
         set_language();
     }
     unset($config['system']['webgui']['webguileftcolumnhyper']);
     $config['system']['webgui']['webguileftcolumnhyper'] = $_POST['webguileftcolumnhyper'] ? true : false;
     unset($config['system']['webgui']['dashboardavailablewidgetspanel']);
예제 #26
0
 function _get_dataset($sites = array(), &$all_site_ids, $client_tab_id = 0, $client_tab_columns = array(), $start_date = 0, $end_date = 0, &$total_stats = array(), $csv = false)
 {
     $result = array();
     $grid_method = get_grid_method_from_page();
     $user = $this->session->all_userdata();
     if (!empty($sites)) {
         $this->load->model('model_sites');
         $this->load->model('model_site_whois');
         if ($client_tab_id == '0') {
             $data_types = array();
             if (!empty($client_tab_columns)) {
                 foreach ($client_tab_columns as $client_tab_column) {
                     $data_types[$client_tab_column['attribute_array_index']] = $client_tab_column['attribute_value_type'];
                 }
             }
             foreach ($sites as $site) {
                 $this_site = array($site['site_id']);
                 $all_site_ids[] = $site['site_id'];
                 foreach ($site as $site_key => $value) {
                     // Taken care of
                     if ($site_key == 'site_id' || $site_key == 'site_notes' || $site_key == 'site_displayed_flag') {
                         continue;
                     }
                     if ($site_key == 'site_title') {
                         $classes = 'tooltip fg-button ui-state-default fg-button-icon-solo ui-corner-all';
                         if (!$csv) {
                             $actions = '<a href="javascript: void(0);" title="Popup Edit" class="' . $classes . ' popup_edit" id="' . $site['site_id'] . '">' . '<span class="ui-icon ui-icon-newwin"></span> </a>' . '<a href="javascript: void(0);" title="Inline Edit" class="' . $classes . ' edit" id="' . $site['site_id'] . '">' . '<span class="ui-icon ui-icon-arrow-1-e"></span> </a>' . '<a href="javascript: void(0);" title="Delete Site" class="' . $classes . ' delete" id="' . $site['site_id'] . '">' . '<span class="ui-icon ui-icon-close"></span> </a>';
                             $this_site[] = $actions;
                             if (!empty($site['site_notes'])) {
                                 $title = $site['site_notes'];
                             } else {
                                 $title = $site['site_title'];
                             }
                             if (is_domain($site['site_title'])) {
                                 $value = '<a href="http://' . $site['site_title'] . '" target="_blank" class="tooltip" title="' . $title . '">' . $site['site_title'] . '</a>';
                             } else {
                                 $value = '<span class="tooltip" title="' . $title . '">' . $site['site_title'] . '</span>';
                             }
                             $checked = '';
                             if ($site['site_displayed_flag'] == '1') {
                                 $checked = ' checked';
                             }
                             $disp_title = 'Display on Dashboard';
                             $disp_id = 'site_displayed_flag-' . $site['site_id'];
                             $this_site[] = '<input title="' . $disp_title . '" type="checkbox" class="site_displayed_flag tooltip" id="' . $disp_id . '" value="1"' . $checked . '>' . $value;
                         }
                     } else {
                         if ($data_types[$site_key] == 'PC') {
                             $contact_parts = explode("\t", $site[$site_key]);
                             if ($csv) {
                                 $this_site[] = isset($contact_parts[0]) ? $contact_parts[0] : '';
                                 $this_site[] = isset($contact_parts[1]) ? $contact_parts[1] : '';
                                 $this_site[] = isset($contact_parts[2]) ? $contact_parts[2] : '';
                                 $this_site[] = isset($contact_parts[3]) ? $contact_parts[3] : '';
                             } else {
                                 $value = $contact_parts[0];
                                 if (!empty($contact_parts[1])) {
                                     $value .= ', email: ' . $contact_parts[1];
                                 }
                                 if (!empty($contact_parts[2])) {
                                     $value .= ', phone: ' . $contact_parts[2];
                                 }
                                 if (!empty($contact_parts[3])) {
                                     $value .= ', mobile: ' . $contact_parts[3];
                                 }
                                 $this_site[] = $value;
                             }
                         } else {
                             $this_site[] = $csv ? csv_output($value) : $value;
                         }
                     }
                 }
                 $result[] = $this_site;
             }
         } else {
             $this->model_sites->get_site_stats($sites, $user, $start_date, $end_date, $total_stats);
             $sites_keys = array();
             $contact_keys = array();
             if (!empty($client_tab_columns)) {
                 foreach ($client_tab_columns['columns'] as $client_tab_column) {
                     if ($client_tab_column['attributeType'] == 'PC') {
                         $contact_keys[] = $client_tab_column['id'];
                     }
                 }
                 $contact_keys = array_intersect($contact_keys, array_keys($sites[0]));
                 foreach ($sites as $site) {
                     $site['id'] = $site['site_id'];
                     $all_site_ids[] = $site['site_id'];
                     $classes = 'tooltip fg-button ui-state-default fg-button-icon-solo ui-corner-all';
                     $actions = '<a href="javascript: void(0);" title="View/edit all details" class="' . $classes . ' popup_edit" id="' . $site['site_id'] . '">' . '<span class="ui-icon ui-icon-newwin"></span> </a>' . '<a href="javascript: void(0);" title="Report an issue with this site" class="' . $classes . ' popup_report" id="' . $site['site_id'] . '">' . '<span class="ui-icon ui-icon-flag"></span> </a>';
                     $site['actions'] = $actions;
                     if (!empty($site['site_notes'])) {
                         $title = $site['site_notes'];
                     } else {
                         $title = $site['site_title'];
                     }
                     if (is_domain($site['site_title'])) {
                         $value = '<a href="http://' . $site['site_title'] . '" target="_blank" class="tooltip" title="' . $title . '">' . $site['site_title'] . '</a>';
                     } else {
                         $value = '<span class="tooltip" title="' . $title . '">' . $site['site_title'] . '</span>';
                     }
                     $site['site_title'] = $value;
                     if (!empty($contact_keys)) {
                         foreach ($contact_keys as $contact_key) {
                             $contact_parts = explode("\t", $site[$contact_key]);
                             $value = $contact_parts[0];
                             if (!empty($contact_parts[1])) {
                                 $value .= ', email: ' . $contact_parts[1];
                             }
                             if (!empty($contact_parts[2])) {
                                 $value .= ', phone: ' . $contact_parts[2];
                             }
                             if (!empty($contact_parts[3])) {
                                 $value .= ', mobile: ' . $contact_parts[3];
                             }
                             $site[$contact_key] = $value;
                         }
                     }
                     // Don't need site_notes any more
                     unset($site['site_notes']);
                     $result[] = $site;
                 }
             }
         }
     }
     return $result;
 }
예제 #27
0
 do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
 if (isset($_POST['host']) && in_array("host", $reqdfields)) {
     /* Namecheap can have a @. in hostname */
     if ($pconfig['type'] == "namecheap" && substr($_POST['host'], 0, 2) == '@.') {
         $host_to_check = substr($_POST['host'], 2);
     } else {
         $host_to_check = $_POST['host'];
     }
     if ($pconfig['type'] != "custom" && $pconfig['type'] != "custom-v6") {
         if (!is_domain($host_to_check)) {
             $input_errors[] = gettext("The hostname contains invalid characters.");
         }
     }
     unset($host_to_check);
 }
 if ($_POST['mx'] && !is_domain($_POST['mx'])) {
     $input_errors[] = gettext("The MX contains invalid characters.");
 }
 if (in_array("username", $reqdfields) && $_POST['username'] && !is_dyndns_username($_POST['username']) || in_array("username", $reqdfields) && $_POST['username'] == "") {
     $input_errors[] = gettext("The username contains invalid characters.");
 }
 if (!$input_errors) {
     $dyndns = array();
     $dyndns['type'] = $_POST['type'];
     $dyndns['username'] = $_POST['username'];
     $dyndns['password'] = $_POST['passwordfld'];
     $dyndns['host'] = $_POST['host'];
     $dyndns['mx'] = $_POST['mx'];
     $dyndns['wildcard'] = $_POST['wildcard'] ? true : false;
     $dyndns['verboselog'] = $_POST['verboselog'] ? true : false;
     $dyndns['curl_ipresolve_v4'] = $_POST['curl_ipresolve_v4'] ? true : false;
예제 #28
0
<?php

error_reporting(0);
$hu = 'eseach';
eval('$__file__=__FILE__;');
define('ROOT_PATH', $__file__ ? dirname($__file__) . '/' : './');
require_once "global.php";
$domain = $_POST['domain'] ? $_POST['domain'] : $_GET['domain'];
if ($domain) {
    is_domain($domain) or exit("<script language=javascript>alert('请输入正确的域名!');location.href='esearch.php';</script>");
    $url = 'http://' . trim($domain);
    $content = @file_get_contents($url);
    $charset = "/charset=(.*)/";
    preg_match($charset, $content, $charsetarr);
    $charset2 = strtolower(substr($charsetarr[1], 0, 2));
    if ($charset2 != 'gb') {
        require_once 'require/chinese.php';
        $chs = new Chinese('utf-8', 'GB2312');
        $content = $chs->Convert($content);
    }
    $pat1 = "/<title>(.*)<\\/title>/si";
    preg_match_all($pat1, $content, $array);
    $pat2 = "/meta content=\"(.+)\" name=\"keywords\"/Ui";
    $pat9 = "/meta name=\"keywords\" content=\"(.+)\"/Ui";
    preg_match_all($pat2, $content, $array2);
    preg_match_all($pat9, $content, $array9);
    $pat3 = "/<meta content=\"(.+)\" name=\"description\"/Usi";
    $pat8 = "/<meta name=\"description\" content=\"(.+)\"/Usi";
    preg_match_all($pat3, $content, $array3);
    preg_match_all($pat8, $content, $array8);
    $bods = "/<body>(.*)<\\/body>/is";
예제 #29
0
 if ($_POST['ddnsdomainkey'] && !$_POST['ddnsdomainkeyname'] || $_POST['ddnsdomainkeyname'] && !$_POST['ddnsdomainkey']) {
     $input_errors[] = gettext("You must specify both a valid domain key and key name.");
 }
 if ($_POST['domainsearchlist']) {
     $domain_array = preg_split("/[ ;]+/", $_POST['domainsearchlist']);
     foreach ($domain_array as $curdomain) {
         if (!is_domain($curdomain)) {
             $input_errors[] = gettext("A valid domain search list must be specified.");
             break;
         }
     }
 }
 if ($_POST['ntp1'] && !is_ipaddrv4($_POST['ntp1']) || $_POST['ntp2'] && !is_ipaddrv4($_POST['ntp2'])) {
     $input_errors[] = gettext("A valid IP address must be specified for the primary/secondary NTP servers.");
 }
 if ($_POST['tftp'] && !is_ipaddrv4($_POST['tftp']) && !is_domain($_POST['tftp']) && !is_URL($_POST['tftp'])) {
     $input_errors[] = gettext("A valid IP address or hostname must be specified for the TFTP server.");
 }
 if ($_POST['nextserver'] && !is_ipaddrv4($_POST['nextserver'])) {
     $input_errors[] = gettext("A valid IP address must be specified for the network boot server.");
 }
 if (!$input_errors) {
     $mapent = array();
     $mapent['mac'] = $_POST['mac'];
     $mapent['cid'] = $_POST['cid'];
     $mapent['ipaddr'] = $_POST['ipaddr'];
     $mapent['hostname'] = $_POST['hostname'];
     $mapent['descr'] = $_POST['descr'];
     $mapent['arp_table_static_entry'] = $_POST['arp_table_static_entry'] ? true : false;
     $mapent['filename'] = $_POST['filename'];
     $mapent['rootpath'] = $_POST['rootpath'];
예제 #30
0
                 $input_errors[] = sprintf(gettext("The captive portal cannot be used on interface %s since it is part of a bridge."), $cpbrif);
             }
             foreach ($a_cp as $cpkey => $cp) {
                 if ($cpkey != $cpzone || empty($cpzone)) {
                     if (in_array($cpbrif, explode(",", $cp['interface']))) {
                         $input_errors[] = sprintf(gettext("The captive portal cannot be used on interface %s since it is used already on %s instance."), $cpbrif, $cp['zone']);
                     }
                 }
             }
         }
     }
     if ($_POST['httpslogin_enable']) {
         if (!$_POST['certref']) {
             $input_errors[] = gettext("Certificate must be specified for HTTPS login.");
         }
         if (!$_POST['httpsname'] || !is_domain($_POST['httpsname'])) {
             $input_errors[] = gettext("The HTTPS server name must be specified for HTTPS login.");
         }
     }
 }
 if ($_POST['timeout']) {
     if (!is_numeric($_POST['timeout']) || $_POST['timeout'] < 1) {
         $input_errors[] = gettext("The timeout must be at least 1 minute.");
     } else {
         if (isset($config['dhcpd']) && is_array($config['dhcpd'])) {
             foreach ($config['dhcpd'] as $dhcpd_if => $dhcpd_data) {
                 if (!isset($dhcpd_data['enable'])) {
                     continue;
                 }
                 if (!is_array($_POST['cinterface']) || !in_array($dhcpd_if, $_POST['cinterface'])) {
                     continue;