summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/principal/ecoconsola.php
diff options
context:
space:
mode:
authoralonso <alonso@us.es>2010-03-30 15:51:40 +0000
committeralonso <alonso@us.es>2010-03-30 15:51:40 +0000
commit2f4f9ff4573669f8ecebf1732ad6e7f23416c92a (patch)
tree31d82674bb8f755c4fee9a7c408a793bb84ad0ce /admin/WebConsole/principal/ecoconsola.php
parent6fc863a18d14cc5387daee8e81957f07f17c5c64 (diff)
git-svn-id: https://opengnsys.es/svn/trunk@848 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin/WebConsole/principal/ecoconsola.php')
-rw-r--r--admin/WebConsole/principal/ecoconsola.php199
1 files changed, 199 insertions, 0 deletions
diff --git a/admin/WebConsole/principal/ecoconsola.php b/admin/WebConsole/principal/ecoconsola.php
new file mode 100644
index 00000000..e70d8b73
--- /dev/null
+++ b/admin/WebConsole/principal/ecoconsola.php
@@ -0,0 +1,199 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2003-2004
+// Fecha Última modificación: Febrero-2005
+// Nombre del fichero: ecoconsola.php
+// Descripción :
+// Muestra el eco de una consola remota
+// *************************************************************************************************************************************************
+include_once("../includes/ctrlacc.php");
+include_once("../clases/SockHidra.php");
+include_once("../clases/AdoPhp.php");
+include_once("../includes/constantes.php");
+include_once("../includes/CreaComando.php");
+include_once("../includes/comunes.php");
+include_once("../idiomas/php/".$idioma."/ecoremoto_".$idioma.".php");
+//________________________________________________________________________________________________________
+$litambito=0;
+$idambito=0;
+
+if (isset($_POST["litambito"])) $litambito=$_POST["litambito"]; // Recoge parametros
+if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
+
+$nombrefuncion="EcoConsola";
+$ejecutor="1";
+$cadenaip="";
+
+$cmd=CreaComando($cadenaconexion);
+if (!$cmd)
+ Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
+//________________________________________________________________________________________________________
+if($cmd){ // Compone cadena ip recorriendo ámbitos
+ switch($litambito){
+ case $LITAMBITO_CENTROS :
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
+ RecorreCentro($cmd);
+ break;
+ case $LITAMBITO_GRUPOSAULAS :
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ break;
+ case $LITAMBITO_AULAS :
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
+ RecorreAulas($cmd);
+ break;
+ case $LITAMBITO_GRUPOSORDENADORES :
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
+ RecorreGruposOrdenadores($cmd);
+ break;
+ case $LITAMBITO_ORDENADORES :
+ $cmd->texto="SELECT ip FROM ordenadores WHERE idordenador=".$idambito;
+ RecorreOrdenadores($cmd);
+ break;
+ }
+}
+$resul=false;
+$trama_notificacion="";
+
+if($cmd){
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ $cadenaip=ereg_replace( ";", "','", $cadenaip );
+ $cmd->texto="SELECT ordenadores.ip as ipord,servidoresrembo.ip FROM ordenadores INNER JOIN servidoresrembo ON ordenadores.idservidorrembo =servidoresrembo.idservidorrembo WHERE ordenadores.ip IN ('".$cadenaip."') ORDER BY servidoresrembo.ip";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) $resul=false; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ $resul=true;
+ $ipservidorrembo=trim($rs->campos["ip"]); // toma ip servidor rembo
+ $cadenaip="";
+ while(!$rs->EOF && $resul){
+ if($ipservidorrembo!=trim($rs->campos["ip"])){ // compara si cambia el servidor rembo
+ $parametros=$ejecutor;
+ $parametros.="nfn=".$nombrefuncion.chr(13);
+ $cadenaip=substr($cadenaip,0,strlen($cadenaip)-1); // Quita la coma
+ $parametros.="iph=".$cadenaip.chr(13);
+ $parametros.="rmb=".$ipservidorrembo.chr(13);
+ $resul=manda_trama();
+ $ipservidorrembo=trim($rs->campos["ip"]); // toma ip servidor rembo
+ $cadenaip="";
+ }
+ $cadenaip.=trim($rs->campos["ipord"]).";"; // toma ip del cliente
+ $rs->Siguiente();
+ }
+ }
+ $rs->Cerrar();
+ if($resul){
+ $parametros=$ejecutor;
+ $parametros.="nfn=".$nombrefuncion.chr(13);
+ $parametros.="pfe=".$pathfileco.chr(13);
+ $cadenaip=substr($cadenaip,0,strlen($cadenaip)-1); // Quita la coma
+ $parametros.="iph=".$cadenaip.chr(13);
+ $parametros.="rmb=".$ipservidorrembo.chr(13);
+ $resul=manda_trama(&$parametros);
+ }
+}
+ if(!$resul)
+ echo "alert('".$TbMsg[10]."');";
+else
+ echo $trama_notificacion; // Retorna pantalla de la consola remota
+
+//=======================================================================================================
+// Manda una petición de eco de consola y espera respuesta
+//________________________________________________________________________________________________________
+function manda_trama(){
+ global $trama_notificacion;
+ global $parametros;
+ global $LONCABECERA;
+ global $shidra;
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $shidra->envia_comando($parametros);
+ $trama=$shidra->recibe_respuesta();
+ $parametros=substr($trama,$LONCABECERA,strlen($trama)-$LONCABECERA);
+ $ValorParametros=extrae_parametros($parametros,chr(13),'=');
+ $trama_notificacion=$ValorParametros["eco"];
+ $shidra->desconectar();
+ return(true);
+ }
+ return(false);
+}
+//________________________________________________________________________________________________________
+function RecorreCentro($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ $idcentro=$rs->campos["idcentro"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0 ORDER BY nombreaula";
+ RecorreAulas($cmd);
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposAulas($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo." AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$idgrupo." ORDER BY nombreaula";
+ RecorreAulas($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreAulas($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idaula=$rs->campos["idaula"];
+ $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE idaula=".$idaula;
+ $k=0;
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposOrdenadores($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposOrdenadores WHERE grupoid=".$idgrupo." ORDER BY nombregrupoordenador";
+ RecorreGruposOrdenadores($cmd);
+ $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE grupoid=".$idgrupo;
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreOrdenadores($cmd){
+ global $cadenaip;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $cadenaip.=$rs->campos["ip"].";";
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+?>