blob: 7cc87512b9d88aeb9235250ac3068efd30788ffc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
<?php
// *************************************************************************************************************************************************
// Aplicación WEB: ogAdmWebCon
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
// Fecha Creación: Año 2009-2010
// Fecha Última modificación: Agosto-2010
// Nombre del fichero: sondeo.php
// Descripción :
// Consulta el estado de los ordenadores
// Version 1.1: De la salida del sondeo del agente antiguo se eliminan los que han respondido con el agente nuevo
// Autor: Irina Gomez - ETSII Universidad Sevilla
// Fecha: 2017/11/03
// *************************************************************************************************************************************************
include_once("../includes/ctrlacc.php");
include_once("../includes/restfunctions.php");
include_once("../clases/AdoPhp.php");
include_once("../includes/constantes.php");
include_once("../includes/comunes.php");
include_once("../includes/CreaComando.php");
include_once("../includes/RecopilaIpesMacs.php");
//________________________________________________________________________________________________________
$ambito=0;
$idambito=0;
$sw=0; // Swich para conmutar entre sondeo a clientes o sólo consulta a la tabla de sockets
if (isset($_POST["ambito"])) $ambito=$_POST["ambito"];
if (isset($_POST["idambito"])) $idambito=$_POST["idambito"];
if (isset($_POST["sw"])) $sw=$_POST["sw"];
//________________________________________________________________________________________________________
$cmd=CreaComando($cadenaconexion);
if (!$cmd)
Header('Location: '.$pagerror.'?herror=2'); // Error de conexión con servidor B.D.
//________________________________________________________________________________________________________
$funcion="Sondeo"; // Nombre de la función que procesa la petición
if($sw==2)
$funcion="respuestaSondeo"; // Nombre de la función que procesa la petición
$atributos="";
$aplicacion=""; // Ámbito de aplicación (cadena de ipes separadas por ";" y de identificadores de ordenadores por ","
$acciones=""; // Cadena de identificadores de acciones separadas por ";" para seguimiento
//________________________________________________________________________________________________________
// Ámbito de aplicación de la petición
//________________________________________________________________________________________________________
$cadenaid="";
$cadenaip="";
$cadenamac="";
RecopilaIpesMacs($cmd,$ambito,$idambito); // Ámbito de aplicación
$ips = explode (';', $cadenaip);
$trama_notificacion = clients($sw, $ips);
// Send REST requests to new OGAgent clients.
$urls = array();
// Compose array of REST URLs.
foreach ($ips as $ip) {
$urls[$ip] = "https://$ip:8000/opengnsys/status";
}
// Launch concurrent requests.
$options = array(CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_TIMEOUT_MS => 1000);
$responses = multiRequest($urls, $options);
// Process responses array (IP as array index).
foreach ($responses as $ip => $resp) {
if (isset($resp['data'])) {
$data = json_decode($resp['data']);
// If user session is oppened, then append "S" to client status.
if (isset($data->status) and isset($data->loggedin)) {
// Output format: IP1/Status1;...
echo "$ip/".$data->status.($data->loggedin?"S;":";");
// eliminamos los equipos repetidos en el agente antiguo y nuevo.
$trama_notificacion=preg_replace("/$ip\/\w{3}/",'',$trama_notificacion);
}
}
}
echo $trama_notificacion;
|