string = string.substr(i+1, string.length - (i+1));
            i = 0;
        	}
        else 
            i++;
    	}
    return final + string;
	}
</script>
<?
$path = $_REQUEST['frmPath'];

if ($path <> '')
	GravaLog('SEL',$_SERVER['SCRIPT_NAME'],'consulta_especial');															
	
$path = ($path?$path:GetMainFolder().'/');

$arrPath = explode('/',$path);
if ($arrPath[count($arrPath)-2]=='..')
	{
	$path = '';
	for ($i = 0; $i < (count($arrPath)-3);$i++)
		$path .= $arrPath[$i].'/';
	}

$strRecursivo = ($_POST['chkExpande']=='S'?'R':'');

$ordem = '';
if ($_GET['ordem']=='datahora')
	$ordem = 't';
Exemplo n.º 2
0
function update_subredes($p_id_ip_rede, $p_origem, $p_objetos, $p_id_local, $p_array_agentes_hashs)
{
    conecta_bd_cacic();
    $MainFolder = GetMainFolder();
    //GravaTESTES('MainFolder: ' . $MainFolder);
    // Função para replicação do conteúdo do REPOSITÓRIO nos servidores de UPDATES das redes cadastradas.
    if ($handle = opendir($MainFolder . '/repositorio')) {
        $v_nomes_arquivos_REP = array();
        $v_versoes_arquivos_REP = array();
        if (file_exists($MainFolder . '/repositorio/versoes_agentes.ini')) {
            $v_array_versoes_agentes = parse_ini_file($MainFolder . '/repositorio/versoes_agentes.ini');
        }
        // Para tratamento dos agentes GNU/Linux  -  Anderson Peterle - Maio/2008 (Dataprev/ES)
        if ($handle = opendir($MainFolder . '/repositorio/agentes_linux')) {
            while (false !== ($v_arquivo = readdir($handle))) {
                if (strpos($p_objetos, $v_arquivo) > 0 || $p_objetos == '*' and substr($v_arquivo, 0, 1) != ".") {
                    // Armazeno o nome do arquivo
                    array_push($v_nomes_arquivos_REP, $v_arquivo);
                    $caminho_arquivo = $MainFolder . '/repositorio/agentes_linux/' . $v_arquivo;
                    if (isset($v_array_versoes_agentes) && ($versao_agente = $v_array_versoes_agentes['pycacic'])) {
                        array_push($v_versoes_arquivos_REP, $v_arquivo . '#' . str_replace('.', '', $versao_agente));
                    } else {
                        array_push($v_versoes_arquivos_REP, $v_arquivo . '#' . strftime("%Y%m%d%H%M", filemtime($caminho_arquivo)));
                    }
                }
            }
        }
        // Para tratamento dos agentes MS-Windows - Anderson Peterle - Maio/2008 (Dataprev/ES)
        $handle = opendir($MainFolder . '/repositorio');
        while (false !== ($v_arquivo = readdir($handle))) {
            if (strpos($p_objetos, $v_arquivo) > 0 || $p_objetos == '*' and substr($v_arquivo, 0, 1) != ".") {
                // Armazeno o nome do arquivo
                array_push($v_nomes_arquivos_REP, $v_arquivo);
                $caminho_arquivo = $MainFolder . '/repositorio/' . $v_arquivo;
                if (isset($v_array_versoes_agentes) && ($versao_agente = $v_array_versoes_agentes[$v_arquivo])) {
                    // A string 0103 será concatenada em virtude da inserção da informação de versão nos agentes
                    // até então era usada a data do arquivo como versão, a string 0103 fará com que o Gerente de Coletas
                    // entenda que as versões atuais são maiores, ou seja, a versão 20100103 é maior que 20051201
                    array_push($v_versoes_arquivos_REP, $v_arquivo . '#' . str_replace('.', '', $versao_agente) . '0103');
                } else {
                    array_push($v_versoes_arquivos_REP, $v_arquivo . '#' . strftime("%Y%m%d%H%M", filemtime($caminho_arquivo)));
                }
            }
        }
        $query_SEL_REDES = '	SELECT 	*
							FROM	redes_versoes_modulos
							WHERE 	id_ip_rede = "' . $p_id_ip_rede . '" AND
									id_local = ' . $p_id_local . ' ORDER BY nm_modulo';
        $v_nomes_arquivos_FTP = array();
        $v_versoes_arquivos_FTP = array();
        $Result_SEL_REDES = mysql_query($query_SEL_REDES);
        $v_achei = 0;
        while ($row = mysql_fetch_array($Result_SEL_REDES)) {
            array_push($v_nomes_arquivos_FTP, trim($row['nm_modulo']));
            array_push($v_versoes_arquivos_FTP, trim($row['nm_modulo']) . '#' . trim($row['te_versao_modulo']));
            for ($cnt_arquivos_REP = 0; $cnt_arquivos_REP < count($v_nomes_arquivos_REP); $cnt_arquivos_REP++) {
                if (trim($v_nomes_arquivos_REP[$cnt_arquivos_REP]) == trim($row['nm_modulo']) && trim($v_versoes_arquivos_REP[$cnt_arquivos_REP]) == trim($row['te_versao_modulo'])) {
                    $v_achei++;
                    $cnt_arquivos_REP = count($v_nomes_arquivos_REP);
                }
            }
        }
        if ($v_achei < count($v_nomes_arquivos_REP)) {
            $query_SEL_REDES = '	SELECT 		re.id_ip_rede,
											re.nm_rede,
											re.te_serv_updates,
											re.nu_porta_serv_updates, 
											re.te_path_serv_updates, 
											re.nm_usuario_login_serv_updates_gerente,								
											re.te_senha_login_serv_updates_gerente,
											re.id_local								
								FROM		redes re 
								WHERE 		re.id_ip_rede = "' . $p_id_ip_rede . '" AND
											re.id_local = ' . $p_id_local;
            $Result_SEL_REDES = mysql_query($query_SEL_REDES);
            $row = mysql_fetch_array($Result_SEL_REDES);
            if (trim($row['te_serv_updates'] . $row['nu_porta_serv_updates'] . $row['te_path_serv_updates'] . $row['nm_usuario_login_serv_updates_gerente'] . $row['te_senha_login_serv_updates_gerente'] . $row['nu_porta_serv_updates']) != '') {
                $v_tripa_objetos_enviados = '';
                $v_conta_objetos_enviados = 0;
                $v_conta_objetos_nao_enviados = 0;
                $v_conta_objetos_atualizados = 0;
                $v_conta_objetos_nao_atualizados = 0;
                $v_conta_objetos_diferentes = 0;
                $v_conta_objetos_inexistentes = 0;
                $v_array_objetos_enviados = array();
                $v_array_objetos_nao_enviados = array();
                $v_array_objetos_atualizados = array();
                $v_array_objetos_nao_atualizados = array();
                $v_efetua_conexao_ftp = -1;
                $v_conexao_ftp = '';
                $v_efetua_conexao_ftp = -1;
                //if (TentaPing("ftp://".$row['nm_usuario_login_serv_updates'].":".
                //                   	   $row['te_senha_login_serv_updates']."@".
                //				       $row['te_serv_updates']).
                //					   $row['te_path_serv_updates']."/cacic.txt")
                if (CheckFtpLogin($row['te_serv_updates'], $row['nm_usuario_login_serv_updates_gerente'], $row['te_senha_login_serv_updates_gerente'], $row['nu_porta_serv_updates'])) {
                    $v_efetua_conexao_ftp = 0;
                    $v_conexao_ftp = conecta_ftp($row['te_serv_updates'], $row['nm_usuario_login_serv_updates_gerente'], $row['te_senha_login_serv_updates_gerente'], $row['nu_porta_serv_updates'], false);
                }
                if ($v_conexao_ftp) {
                    $_SESSION['v_tripa_servidores_updates'] .= $p_origem == 'Pagina' ? '#' . trim($row['id_local']) . trim($row['te_serv_updates']) . '#' : '';
                    sort($v_nomes_arquivos_REP, SORT_STRING);
                    sort($v_versoes_arquivos_REP, SORT_STRING);
                    sort($v_nomes_arquivos_FTP, SORT_STRING);
                    sort($v_versoes_arquivos_FTP, SORT_STRING);
                    $v_efetua_conexao_ftp = 1;
                    for ($cnt_nomes_arquivos_REP = 0; $cnt_nomes_arquivos_REP < count($v_nomes_arquivos_REP); $cnt_nomes_arquivos_REP++) {
                        // Atenção: acertar depois...
                        $v_pasta_agente_linux = stripos2($v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP], '.tgz', false) ? 'agentes_linux/' : '';
                        $v_achei = 0;
                        for ($cnt_nomes_arquivos_FTP = 0; $cnt_nomes_arquivos_FTP < count($v_nomes_arquivos_FTP); $cnt_nomes_arquivos_FTP++) {
                            if ($v_nomes_arquivos_FTP[$cnt_nomes_arquivos_FTP] == $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]) {
                                $v_achei = 1;
                                if ($v_versoes_arquivos_FTP[$cnt_nomes_arquivos_FTP] != $v_versoes_arquivos_REP[$cnt_nomes_arquivos_REP]) {
                                    $v_conta_objetos_diferentes++;
                                    @ftp_chdir($v_conexao_ftp, $row['te_path_serv_updates'] . '/' . $v_nomes_arquivos_FTP[$cnt_nomes_arquivos_FTP]);
                                    @ftp_delete($v_conexao_ftp, $row['te_path_serv_updates'] . '/' . $v_nomes_arquivos_FTP[$cnt_nomes_arquivos_FTP]);
                                    if (@ftp_put($v_conexao_ftp, $row['te_path_serv_updates'] . '/' . $v_nomes_arquivos_FTP[$cnt_nomes_arquivos_FTP], $MainFolder . '/repositorio/' . $v_pasta_agente_linux . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP], FTP_BINARY)) {
                                        array_push($v_array_objetos_atualizados, $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]);
                                        $arr_versao_arquivo = explode('#', $v_versoes_arquivos_REP[$cnt_nomes_arquivos_REP]);
                                        if ($p_origem == 'Pagina') {
                                            atualiza_red_ver_mod_pagina($row['te_serv_updates'], $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP], $arr_versao_arquivo[1], $p_array_agentes_hashs[$v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]]);
                                        } else {
                                            atualiza_red_ver_mod($row['id_ip_rede'], $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP], $arr_versao_arquivo[1], $p_array_agentes_hashs[$v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]], $row['id_local']);
                                        }
                                        echo '<font size="1px" color="orange">Atualizado...: <font color="black">' . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP] . '</font></font><br>';
                                        $v_conta_objetos_atualizados++;
                                        flush();
                                    } else {
                                        array_push($v_array_objetos_nao_atualizados, $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]);
                                        echo '<font color=red size="1px" color="red">Não Atualizado: <font color="black">' . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP] . '</font></font><br>';
                                        $v_conta_objetos_nao_atualizados++;
                                        flush();
                                    }
                                }
                                $cnt_nomes_arquivos_FTP = count($v_nomes_arquivos_FTP);
                            }
                        }
                        if ($v_achei == 0) {
                            $arr_versao_arquivo = explode('#', $v_versoes_arquivos_REP[$cnt_nomes_arquivos_REP]);
                            $v_conta_objetos_inexistentes++;
                            $v_conta_objetos_enviados++;
                            $v_tripa_objetos_enviados .= $v_tripa_objetos_enviados ? '#' : '';
                            $v_tripa_objetos_enviados .= $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP] . ',' . $arr_versao_arquivo[1];
                            @ftp_chdir($v_conexao_ftp, $row['te_path_serv_updates'] . '/' . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]);
                            @ftp_delete($v_conexao_ftp, $row['te_path_serv_updates'] . '/' . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]);
                            if (@ftp_put($v_conexao_ftp, $row['te_path_serv_updates'] . '/' . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP], $MainFolder . '/repositorio/' . $v_pasta_agente_linux . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP], FTP_BINARY)) {
                                array_push($v_array_objetos_enviados, $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]);
                                if ($p_origem == 'Pagina') {
                                    atualiza_red_ver_mod_pagina($row['te_serv_updates'], $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP], $arr_versao_arquivo[1], $p_array_agentes_hashs[$v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]]);
                                } else {
                                    atualiza_red_ver_mod($row['id_ip_rede'], $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP], $arr_versao_arquivo[1], $p_array_agentes_hashs[$v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]], $row['id_local']);
                                }
                                //atualiza_red_ver_mod($row['id_ip_rede'],$v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP],$v_versoes_arquivos_REP[$cnt_nomes_arquivos_REP],$row['id_local']);
                                $v_conta_objetos_enviados++;
                                echo '<font size="1px" color="green">Enviado.......: <font color="black">' . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP] . '</font></font><br>';
                                flush();
                            } else {
                                array_push($v_array_objetos_nao_enviados, $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP]);
                                $v_conta_objetos_nao_enviados++;
                                echo '<font color=red size="1px" color="red">Não Enviado: <font color="black">' . $v_nomes_arquivos_REP[$cnt_nomes_arquivos_REP] . '</font></font><br>';
                                $v_achei = 0;
                                flush();
                            }
                        }
                    }
                    if (($v_conta_objetos_diferentes > 0 and $v_conta_objetos_diferentes == $v_conta_objetos_atualizados) || ($v_conta_objetos_inexistentes > 0 and $v_conta_objetos_inexistentes == $v_conta_objetos_enviados) || ($v_conta_objetos_diferentes == 0 and $v_conta_objetos_inexistentes == 0)) {
                        Marca_Atualizado($p_id_ip_rede, $p_id_local);
                    }
                    ftp_quit($v_conexao_ftp);
                } else {
                    if (trim($row['te_serv_updates']) == '' || trim($row['nu_porta_serv_updates']) == '' || trim($row['te_path_serv_updates']) == '' || trim($row['nm_usuario_login_serv_updates_gerente']) == '' || trim($row['te_senha_login_serv_updates_gerente']) == '' || trim($row['nu_porta_serv_updates']) == '') {
                        $_SESSION['v_status_conexao'] = 'NC';
                        // Não Configurado
                    } else {
                        $_SESSION['v_status_conexao'] = 'OFF';
                        // Off Line
                    }
                }
                if ($p_origem == 'Pagina') {
                    $_SESSION['v_tripa_objetos_enviados'] = $v_tripa_objetos_enviados;
                    $_SESSION['v_conta_objetos_enviados'] = $v_conta_objetos_enviados;
                    $_SESSION['v_conta_objetos_nao_enviados'] = $v_conta_objetos_nao_enviados;
                    $_SESSION['v_conta_objetos_atualizados'] = $v_conta_objetos_atualizados;
                    $_SESSION['v_conta_objetos_nao_atualizados'] = $v_conta_objetos_nao_atualizados;
                    $_SESSION['v_efetua_conexao_ftp'] = $v_efetua_conexao_ftp;
                    $_SESSION['v_conexao_ftp'] = $v_conexao_ftp;
                }
            }
        } else {
            $_SESSION['v_efetua_conexao_ftp'] = 1;
        }
    }
}
Exemplo n.º 3
0
$v_id_ip_estacao = 	$_SERVER['REMOTE_ADDR'];	

//LimpaTESTES();

$v_dados_rede = getDadosRede($v_id_ip_estacao);

// Essa condição testa se foi o "chkcacic" chamado para instalação ou o "Gerente de Coletas" para validar IP da estação...
if (trim(DeCrypt($key,$iv,$_POST['in_chkcacic'],$v_cs_cipher,$v_cs_compress,$strPaddingKey))=='chkcacic' || 
	trim(DeCrypt($key,$iv,$_POST['in_teste']   ,$v_cs_cipher,$v_cs_compress,$strPaddingKey))=='OK')
	{	
	$retorno_xml_values .= '<TE_REDE_OK>' . EnCrypt($key,$iv,($v_dados_rede['id_ip_rede'] <> ''?'S':'N'),$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey). '</TE_REDE_OK>';		

	if (trim(DeCrypt($key,$iv,$_POST['in_chkcacic'],$v_cs_cipher,$v_cs_compress,$strPaddingKey))=='chkcacic')
		{
		// Retorno as versões dos três principais agentes ao CHKCACIC para que sejam verificadas...
		$MainFolder		= GetMainFolder();
		$v_array_versoes_agentes = array();
		if (file_exists($MainFolder . '/repositorio/versoes_agentes.ini'))
			{
			$v_array_versoes_agentes = parse_ini_file($MainFolder . '/repositorio/versoes_agentes.ini');
			if ($boolAgenteLinux)
				{
				// Arghh! O PyCACIC espera pelo nome completo do pacote TGZ
				$retorno_xml_values .= '<' . 'TE_PACOTE_PYCACIC_DISPONIVEL>' . EnCrypt($key,$iv,$v_array_versoes_agentes['te_pacote_PyCACIC']     ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/TE_PACOTE_PYCACIC_DISPONIVEL>';			
				$retorno_xml_values .= '<' . 'TE_HASH_PYCACIC>' 			 . EnCrypt($key,$iv,$v_array_versoes_agentes['te_pacote_PyCACIC_HASH'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/TE_HASH_PYCACIC>';													
				}
			else
				{
				$retorno_xml_values .= '<CACICSERVICE>'   	    . EnCrypt($key,$iv,$v_array_versoes_agentes['cacicservice.exe']  	 ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey)   	. '<' . '/CACICSERVICE>';
				$retorno_xml_values .= '<TE_HASH_CACICSERVICE>' . EnCrypt($key,$iv,$v_array_versoes_agentes['cacicservice.exe_HASH'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey)   	. '<' . '/TE_HASH_CACICSERVICE>';								
				$retorno_xml_values .= '<te_MainProgramName>'  	 	. EnCrypt($key,$iv,CACIC_MAIN_PROGRAM_NAME.'.EXE'	 ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey)	. '</te_MainProgramName>';