// Essas variáveis conterão os indicadores de criptografia e compactação
$v_cs_cipher	= (trim($_POST['cs_cipher'])   <> ''?trim($_POST['cs_cipher'])   : '4');
$v_cs_compress	= (trim($_POST['cs_compress']) <> ''?trim($_POST['cs_compress']) : '4');

$strPaddingKey = '';

// O agente PyCACIC envia o valor "padding_key" para preenchimento da palavra chave para decriptação/encriptação
if ($_POST['padding_key'])
	{
	// Valores específicos para trabalho com o PyCACIC - 04 de abril de 2008 - Rogério Lino - Dataprev/ES
	$strPaddingKey 	= $_POST['padding_key']; // A versão inicial do agente em Python exige esse complemento na chave...
	}

autentica_agente($key,$iv,$v_cs_cipher,$v_cs_compress, $strPaddingKey);

$v_dados_rede = getDadosRede();

$te_node_address 	= DeCrypt($key,$iv,$_POST['te_node_address']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$id_so_new         	= DeCrypt($key,$iv,$_POST['id_so']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$te_so           	= DeCrypt($key,$iv,$_POST['te_so']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$id_ip_rede     	= DeCrypt($key,$iv,$_POST['id_ip_rede']			,$v_cs_cipher,$v_cs_compress, $strPaddingKey);
$te_ip 				= DeCrypt($key,$iv,$_POST['te_ip']				,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$te_nome_computador	= DeCrypt($key,$iv,$_POST['te_nome_computador']	,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 
$te_workgroup 		= DeCrypt($key,$iv,$_POST['te_workgroup']		,$v_cs_cipher,$v_cs_compress, $strPaddingKey); 

/* Todas as vezes em que é feita a recuperação das configurações por um agente, é incluído 
 o computador deste agente no BD, caso ainda não esteja inserido. */
if ($te_node_address <> '')
	{
	$arrSO = inclui_computador_caso_nao_exista(	$te_node_address, 
												$id_so_new, 
Example #2
0
	echo '<body bgcolor='.($_SESSION['id_default_body_bgcolor']<>''?$_SESSION['id_default_body_bgcolor']:'#EBEBEB').' leftmargin="1" topmargin="0" ';	
	if (!$_SESSION["id_grupo_usuarios"] || $_SESSION['id_grupo_usuarios']==3)
		{
		echo 'onLoad="SetaCampo('."'frm_nm_usuario_acesso'".');"';	
		}
	else if ($_SESSION["id_usuario"])
		echo 'onLoad="SetaCampo('."'user_logged_in'".');"';
		echo '>';
	?>
	<script language="JavaScript" type="text/javascript" src="include/cacic.js"></script>
	<script language="JavaScript" type="text/javascript" src="include/crypt.js"></script>
	<p class="menu"> 
	<?
if (!$_SESSION["id_usuario"])
	{
	$v_dados_rede = getDadosRede(); // _SERVER["REMOTE_ADDR"]...
	PegaConfiguracoesLocais($v_dados_rede['id_local']);		
	if ($v_dados_rede['id_ip_rede'] && $v_dados_rede['nm_local'])
		{
	 	$_SESSION["id_grupo_usuarios"] 		=             3; // Convidado
		$_SESSION["nm_usuario"] 			= 			  '';
		$_SESSION["menu_usuario"]      		=             getMenu("menu_con.txt");
		$_SESSION["id_usuario"] 			=             1;
		$_SESSION["id_local"]				=             $v_dados_rede['id_local'];			 			 
		$_SESSION["nm_local"]				=             $v_dados_rede['nm_local'];			 			 			 
		$_SESSION["sg_local"]				=             $v_dados_rede['sg_local'];			 			 			 		
		$_SESSION["cs_nivel_administracao"]	=             0;

		?>
		<SCRIPT LANGUAGE="Javascript">
		top.location = 'index.php';
Example #3
0
function inclui_computador_caso_nao_exista($te_node_address, $id_so_new, $te_so_new, $id_ip_rede, $te_ip, $te_nome_computador, $te_workgroup)
{
    $v_te_ip = $te_ip;
    // ...caso o IP esteja inválido, obtenho-o a partir de variável do servidor
    // Tudo bem! Ainda vou implementar usando expressões regulares!!!  :)
    if (substr_count($v_te_ip, 'zf') > 0 || trim($v_te_ip) == '') {
        $v_te_ip = $_SERVER['REMOTE_ADDR'];
    }
    /*	
    GravaTESTES('Library_iccne: Script Chamador: '.$_SERVER['REQUEST_URI']);		
    GravaTESTES('Library_iccne: v_te_ip: '.$v_te_ip);			
    GravaTESTES('Library_iccne: te_node_address: '.$te_node_address);			
    GravaTESTES('Library_iccne: id_so_new: '.$id_so_new);			
    GravaTESTES('Library_iccne: te_so_new: '.$te_so_new);			
    GravaTESTES('Library_iccne: id_ip_rede: '.$id_ip_rede);			
    GravaTESTES('Library_iccne: te_ip: '.$te_ip);			
    GravaTESTES('Library_iccne: te_nome_computador: '.$te_nome_computador);			
    GravaTESTES('Library_iccne: te_workgroup: '.$te_workgroup);								     
    */
    $arrSO = getValores('so', 'id_so', 'id_so = ' . $id_so_new);
    $id_so = $arrSO['id_so'];
    $arrSO = getValores('so', 'te_so', 'te_so = "' . $te_so_new . '"');
    $te_so = $arrSO['te_so'];
    conecta_bd_cacic();
    if ($te_so == '' && $id_so != '' && $id_so != 0 && $te_so_new != '') {
        $te_so = $te_so_new;
        $query = 'UPDATE so 
       	  		  SET te_so = "' . $te_so_new . '"
			      WHERE id_so = ' . $id_so;
        $result = mysql_query($query);
    } elseif ($te_so != '' && ($id_so == '' || $id_so == 0)) {
        $query = 'SELECT id_so 
				  FROM   so
			      WHERE  te_so = "' . $te_so . '"';
        $result = mysql_query($query);
        $row = mysql_fetch_array($result);
        $id_so = $row['id_so'];
    }
    if ($te_so == '' && ($id_so == '' || $id_so == 0)) {
        if ($te_so_new != '' && ($id_so_new != '' && $id_so_new != 0) || $te_so_new != '') {
            if ($id_so == 0 || $id_so == '') {
                // Busco o último valor do Identificador Externo caso não tenha recebido valor para o ID Externo
                $querySEL = 'SELECT max(id_so) as MaxIdSo
							  FROM   so';
                $resultSEL = mysql_query($querySEL);
                $rowSEL = mysql_fetch_array($resultSEL);
                $id_so = $rowSEL['MaxIdSo'] + 1;
            } else {
                $id_so = $id_so_new;
            }
            // Insiro a informação na tabela de Sistemas Operacionais incrementando o Identificador Externo
            $queryINS = 'INSERT 
						  INTO 		so(id_so,te_desc_so,sg_so,te_so) 
						  VALUES    (' . $id_so . ',"S.O. a Cadastrar","Sigla a Cadastrar","' . $te_so_new . '")';
            //GravaTESTES('Library_iccne_queryINS: '.$queryINS);
            $resultINS = mysql_query($queryINS);
            // Carrego os dados referente à rede da estação
            $v_dados_rede = getDadosRede();
            // Verifico pelo local se há coletas configuradas e acrescento o S.O. à tabela de ações
            $querySEL = 'SELECT 	id_acao
						  FROM   	acoes_so
						  WHERE  	id_local = ' . $v_dados_rede['id_local'] . ' 
						  GROUP BY 	id_acao';
            //GravaTESTES('Library_iccne_querySEL: '.$querySEL);
            $resultSEL = mysql_query($querySEL);
            // Caso existam ações configuradas para o local, incluo o S.O. para que também execute-as...
            $strInsereID = '';
            while ($rowSEL = mysql_fetch_array($resultSEL)) {
                $strInsereID .= $strInsereID != '' ? ',' : '';
                $strInsereID .= '(' . $v_dados_rede['id_local'] . ',' . $rowSEL['id_acao'] . ',' . $id_so . ')';
            }
            if ($strInsereID != '') {
                $queryINS = 'INSERT INTO acoes_so(id_local, id_acao, id_so) 
							 VALUES ' . $strInsereID;
                $resultINS = mysql_query($queryINS);
            }
        }
    }
    $arrRetorno = array('id_so' => '', 'te_so' => '');
    if ($id_so > 0 && $te_node_address != '') {
        $checa_existe = computador_existe($te_node_address, $id_so);
        if ($checa_existe == '0') {
            $query = 'INSERT INTO computadores (te_node_address, id_so, te_so, id_ip_rede, te_ip, te_nome_computador, te_workgroup, dt_hr_inclusao, dt_hr_ult_acesso)
					  VALUES ("' . $te_node_address . '", "' . $id_so . '","' . $te_so . '", "' . $id_ip_rede . '","' . $v_te_ip . '","' . $te_nome_computador . '","' . $te_workgroup . '", NOW(), NOW())';
        } elseif ($checa_existe == '2') {
            $query = 'UPDATE computadores 
        	  		  SET id_ip_rede = "' . $id_ip_rede . '",
					      te_ip = "' . $v_te_ip . '",
					      te_so = "' . $te_so . '",					  
						  te_nome_computador="' . $te_nome_computador . '",
						  te_workgroup="' . $te_workgroup . '"					  
				      WHERE te_node_address = "' . $te_node_address . '"
							AND id_so = "' . $id_so . '"';
        }
        //GravaTESTES('Library_iccne_QUERY : '.$query);
        $result = mysql_query($query);
        $arrRetorno = array('id_so' => $id_so, 'te_so' => $te_so);
        // OK! O computador foi INCLUIDO/ATUALIZADO.
        // Removo qualquer registro de insucesso na instalação existente para o IP + SO (!!!)
        $query = 'DELETE 
				  FROM		insucessos_instalacao
				  WHERE		te_ip = "' . $v_te_ip . '" AND
				  			te_so = "' . $te_so . '"';
        // Talvez eu melhore esta cláusula mais tarde
        $result = mysql_query($query);
    }
    // ******************************************************************************************************************************
    // ******************************************************************************************************************************
    // Novo Conceito:
    // As estações poderão ter uma licença MS-Windows e n sabores de Linux
    // Desta forma, será customizada a ocupação do banco e será mantida a versão do S.O. mais atual para fins de Gestão de Licenças e
    // estatísticas
    //
    // Anderson Peterle - Dataprev/ES - 01/08/2008 12:04h
    // ******************************************************************************************************************************
    // ******************************************************************************************************************************
    $arrSO = getValores('so', 'in_mswindows', 'te_so = "' . $te_so_new . '"');
    $in_mswindows = $arrSO['in_mswindows'];
    if ($in_mswindows == 'S') {
        $arrSO = getValores('so', 'id_so', 'te_so = "' . $te_so_new . '"');
        $id_so = $arrSO['id_so'];
        if (ChecaSO($te_node_address, $id_so)) {
            //GravaTESTES('***** Forçando coletas ANVI COMP HARD MONI SOFT UNDI para a estação *****');
            $query = '	UPDATE	computadores 
						SET 	dt_hr_coleta_forcada_estacao = now(),
								te_nomes_curtos_modulos="COMP#HARD#SOFT#ANVI#MONI#UNDI" 
						WHERE 	te_node_address="' . $te_node_address . '" AND
								id_so=' . $id_so;
            $result = mysql_query($query);
            //GravaTESTES('======================================================================');
        }
    }
    // ******************************************************************************************************************************
    // ******************************************************************************************************************************
    return $arrRetorno;
}
	}
	
$boolAgenteLinux 	= (trim(DeCrypt($key,$iv,$_POST['AgenteLinux'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)) <> ''?true:false);

// Obtenho o IP da estação por meio da decriptografia...
$v_id_ip_estacao = trim(DeCrypt($key,$iv,$_POST['id_ip_estacao'],$v_cs_cipher,$v_cs_compress,$strPaddingKey));

// ...caso o IP esteja inválido, obtenho-o a partir de variável do servidor
if (substr_count($v_id_ip_estacao,'zf')>0 || trim($v_id_ip_estacao)=='')
	$v_id_ip_estacao = 	$_SERVER['REMOTE_ADDR'];

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