diff options
author | alonso <alonso@us.es> | 2010-03-30 15:51:40 +0000 |
---|---|---|
committer | alonso <alonso@us.es> | 2010-03-30 15:51:40 +0000 |
commit | 2f4f9ff4573669f8ecebf1732ad6e7f23416c92a (patch) | |
tree | 31d82674bb8f755c4fee9a7c408a793bb84ad0ce /admin/WebConsole/principal/ecoconsola.php | |
parent | 6fc863a18d14cc5387daee8e81957f07f17c5c64 (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.php | 199 |
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(); +} +?> |