source: admin/WebConsole/principal/shellconsola.php @ ed4b2fe

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacion
Last change on this file since ed4b2fe was 9f1274e, checked in by ramon <ramongomez@…>, 7 years ago

#804: Sustituir funciones para compatibilidad con PHP 7 (split por explode y ereg... por preg_...).

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5619 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 7.2 KB
Line 
1<?php
2// *************************************************************************************************************************************************
3// Aplicación WEB: ogAdmWebCon
4// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
5// Fecha Creación: Año 2009-2010
6// Fecha Última modificación: Agosto-2010
7// Nombre del fichero: shellconsola.php
8// Descripción :
9//              Crea una consola remota para enviar comandos de la shell de forma remota y recibir el eco
10// *************************************************************************************************************************************************
11include_once("../includes/ctrlacc.php");
12include_once("../clases/SockHidra.php");
13include_once("../clases/AdoPhp.php");
14include_once("../includes/constantes.php");
15include_once("../includes/CreaComando.php");
16include_once("../idiomas/php/".$idioma."/consolaremota_".$idioma.".php");
17//________________________________________________________________________________________________________
18$litambito=0;
19$idambito=0;
20$comando="";
21
22if (isset($_POST["litambito"])) $litambito=$_POST["litambito"]; // Recoge parametros
23if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
24if (isset($_POST["comando"])) $comando=$_POST["comando"];
25
26$nombrefuncion="ConsolaRemota";
27$ejecutor="1";
28$cadenaip="";
29
30$cmd=CreaComando($cadenaconexion);
31if (!$cmd)
32        Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
33//________________________________________________________________________________________________________
34if($cmd){ // Compone cadena ip recorriendo ámbitos
35        switch($litambito){
36                        case $LITAMBITO_CENTROS :
37                                $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
38                                RecorreCentro($cmd);
39                                break;
40                        case $LITAMBITO_GRUPOSAULAS :
41                                $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS;
42                                RecorreGruposAulas($cmd);
43                                break;
44                        case $LITAMBITO_AULAS :
45                                $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
46                                RecorreAulas($cmd);
47                                break;
48                        case $LITAMBITO_GRUPOSORDENADORES :
49                                $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
50                                RecorreGruposOrdenadores($cmd);
51                                break;
52                        case $LITAMBITO_ORDENADORES :
53                                $cmd->texto="SELECT ip FROM ordenadores WHERE idordenador=".$idambito;
54                                RecorreOrdenadores($cmd);
55                                break;
56        }
57}
58$resul=false;
59if($cmd){
60        $shidra=new SockHidra($servidorhidra,$hidraport);
61        $cadenaip=preg_replace("/;/", "','", $cadenaip );
62        $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";
63        $rs=new Recordset;
64        $rs->Comando=&$cmd;
65        if (!$rs->Abrir())      $resul=false; // Error al abrir recordset
66        $rs->Primero();
67        if(!$rs->EOF){
68                $resul=true;
69                $ipservidorrembo=trim($rs->campos["ip"]); // toma ip servidor rembo
70                $cadenaip="";
71                while(!$rs->EOF && $resul){
72                        if($ipservidorrembo!=trim($rs->campos["ip"])){ // compara si cambia el servidor rembo
73                                $parametros=$ejecutor;
74                                $parametros.="nfn=".$nombrefuncion.chr(13);
75                                $cadenaip=substr($cadenaip,0,strlen($cadenaip)-1); // Quita la coma
76                                $parametros.="iph=".$cadenaip.chr(13);
77                                $parametros.="rmb=".$ipservidorrembo.chr(13);
78                                $resul=manda_trama();
79                                $ipservidorrembo=trim($rs->campos["ip"]); // toma ip servidor rembo
80                                $cadenaip="";
81                        }
82                        $cadenaip.=trim($rs->campos["ipord"]).";"; // toma ip del cliente
83                        $rs->Siguiente();
84                }
85        }
86        $rs->Cerrar();
87        if($resul){
88                $parametros=$ejecutor;
89                $parametros.="nfn=".$nombrefuncion.chr(13);
90                $parametros.="cmd=".$comando.chr(13);
91                $cadenaip=substr($cadenaip,0,strlen($cadenaip)-1); // Quita la coma
92                $parametros.="iph=".$cadenaip.chr(13);
93                $parametros.="rmb=".$ipservidorrembo.chr(13);
94
95                $resul=manda_trama();
96        }
97}
98
99 if(!$resul)
100        echo "alert('".$TbMsg[10]."');";
101
102//=======================================================================================================
103//      Manda una trama del comando shellconsola
104//________________________________________________________________________________________________________
105function manda_trama(){
106        global $parametros;
107        global $shidra;
108        if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
109                $shidra->envia_comando($parametros);
110                $shidra->desconectar();
111                return(true);
112        }
113        return(false);
114}
115//________________________________________________________________________________________________________
116function RecorreCentro($cmd){
117        global $AMBITO_GRUPOSAULAS;
118        $rs=new Recordset;
119        $rs->Comando=&$cmd;
120        if (!$rs->Abrir()) return; // Error al abrir recordset
121        $rs->Primero();
122        if(!$rs->EOF){
123                $idcentro=$rs->campos["idcentro"];
124                $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
125                RecorreGruposAulas($cmd);
126                $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0 ORDER BY nombreaula";
127                RecorreAulas($cmd);
128        }
129        $rs->Cerrar();
130}
131//________________________________________________________________________________________________________
132function RecorreGruposAulas($cmd){
133        global $AMBITO_GRUPOSAULAS;
134        $rs=new Recordset;
135        $rs->Comando=&$cmd;
136        if (!$rs->Abrir()) return; // Error al abrir recordset
137        $rs->Primero();
138        while (!$rs->EOF){
139                $idgrupo=$rs->campos["idgrupo"];
140                $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo." AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
141                RecorreGruposAulas($cmd);
142                $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE  grupoid=".$idgrupo." ORDER BY nombreaula";
143                RecorreAulas($cmd);
144                $rs->Siguiente();
145        }
146        $rs->Cerrar();
147}
148//________________________________________________________________________________________________________
149function RecorreAulas($cmd){
150        $rs=new Recordset;
151        $rs->Comando=&$cmd;
152        if (!$rs->Abrir()) return; // Error al abrir recordset
153        $rs->Primero();
154        while (!$rs->EOF){
155                $idaula=$rs->campos["idaula"];
156                $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE  idaula=".$idaula;
157                $k=0;
158                RecorreOrdenadores($cmd);
159                $rs->Siguiente();
160        }
161        $rs->Cerrar();
162}
163//________________________________________________________________________________________________________
164function RecorreGruposOrdenadores($cmd){
165        $rs=new Recordset;
166        $rs->Comando=&$cmd;
167        if (!$rs->Abrir()) return; // Error al abrir recordset
168        $rs->Primero();
169        while (!$rs->EOF){
170                $idgrupo=$rs->campos["idgrupo"];
171                $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposOrdenadores WHERE grupoid=".$idgrupo." ORDER BY nombregrupoordenador";
172                RecorreGruposOrdenadores($cmd);
173                $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE  grupoid=".$idgrupo;
174                RecorreOrdenadores($cmd);
175                $rs->Siguiente();
176        }
177        $rs->Cerrar();
178}
179//________________________________________________________________________________________________________
180function RecorreOrdenadores($cmd){
181        global $cadenaip;
182        $rs=new Recordset;
183        $rs->Comando=&$cmd;
184        if (!$rs->Abrir()) return; // Error al abrir recordset
185        $rs->Primero();
186        while (!$rs->EOF){
187                $cadenaip.=$rs->campos["ip"].";";
188                $rs->Siguiente();
189        }
190        $rs->Cerrar();
191}
192?>
Note: See TracBrowser for help on using the repository browser.