source: admin/WebConsole/principal/sondeo.php @ 744ecd6

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-instalacionwebconsole3
Last change on this file since 744ecd6 was df7fd0b, checked in by irina <irinagomez@…>, 7 years ago

#718 Consola - Filtro de ámbito: Se resuelve errata por la que equipos desseleccionados volvían a marcarse automáticamente.

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

  • Property mode set to 100644
File size: 4.3 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: sondeo.php
8// Descripción :
9//              Consulta el estado de los ordenadores
10// Version 1.1: De la salida del sondeo del agente antiguo se eliminan los que han respondido con el agente nuevo
11// Autor: Irina Gomez - ETSII Universidad Sevilla
12// Fecha: 2017/11/03
13// *************************************************************************************************************************************************
14        include_once("../includes/ctrlacc.php");
15        include_once("../includes/restfunctions.php");
16        include_once("../clases/SockHidra.php");
17        include_once("../clases/AdoPhp.php");
18        include_once("../includes/constantes.php");
19        include_once("../includes/comunes.php");
20        include_once("../includes/CreaComando.php");
21        include_once("../includes/RecopilaIpesMacs.php");
22        //________________________________________________________________________________________________________
23        $ambito=0;
24        $idambito=0;
25        $sw=0;  // Swich para conmutar entre sondeo a clientes o sólo consulta a la tabla de sockets
26
27        if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
28        if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
29        if (isset($_POST["sw"])) $sw=$_POST["sw"];
30        //________________________________________________________________________________________________________
31        $cmd=CreaComando($cadenaconexion);
32        if (!$cmd)
33                Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
34        //________________________________________________________________________________________________________
35        $funcion="Sondeo"; // Nombre de la función que procesa la petición
36        if($sw==2)
37                $funcion="respuestaSondeo"; // Nombre de la función que procesa la petición
38        $atributos="";
39        $aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
40        $acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
41        //________________________________________________________________________________________________________
42        // Ámbito de aplicación de la petición
43        //________________________________________________________________________________________________________
44        $cadenaid="";
45        $cadenaip="";
46        $cadenamac="";
47        RecopilaIpesMacs($cmd,$ambito,$idambito); // Ámbito de aplicación
48
49        $aplicacion="ido=".$cadenaid.chr(13)."iph=".$cadenaip.chr(13);
50        // Envio al servidor de la petición
51        //________________________________________________________________________________________________________
52        $resul=false;
53        $trama="";
54        $shidra=new SockHidra($servidorhidra,$hidraport);
55        if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
56                $parametros="nfn=".$funcion.chr(13);
57                $parametros.=$aplicacion;
58                $parametros.=$atributos;
59                $parametros.=$acciones;
60                $resul=$shidra->envia_peticion($parametros);
61                if($resul)
62                        $trama=$shidra->recibe_respuesta();
63                $shidra->desconectar();
64        }
65        if($resul){
66                $hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
67                $parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
68                $ValorParametros=extrae_parametros($parametros,chr(13),'=');
69                if (isset ($ValorParametros["tso"])) {
70                        $trama_notificacion=$ValorParametros["tso"];
71                }
72        }
73
74        // Send REST requests to new OGAgent clients.
75        $urls = array();
76        // Compose array of REST URLs.
77        foreach (explode (';', $cadenaip) as $ip) {
78                $urls[$ip] = "https://$ip:8000/opengnsys/status";
79        }
80        // Launch concurrent requests.
81        $responses = multiRequest($urls);
82        // Process responses array (IP as array index).
83        foreach ($responses as $ip => $resp) {
84                if (isset($resp['data'])) {
85                        $data = json_decode($resp['data']);
86                        // If user session is oppened, then append "S" to client status.
87                        if (isset($data->status) and isset($data->loggedin)) {
88                                // Output format: IP1/Status1;...
89                                echo "$ip/".$data->status.($data->loggedin?"S;":";");
90                                // eliminamos los equipos repetidos en el agente antiguo y nuevo.
91                                $trama_notificacion=preg_replace("/$ip\/\w{3}/",'',$trama_notificacion);
92
93                        }
94                }
95        }
96        echo $trama_notificacion;
97?>
98
Note: See TracBrowser for help on using the repository browser.