summaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authoralonso <alonso@us.es>2010-06-30 13:55:00 +0000
committeralonso <alonso@us.es>2010-06-30 13:55:00 +0000
commite021aa874e093093ba67b1ca1877cac88590a088 (patch)
tree20f81db456faf3ecfe704753134fab666ea7b4ba /admin
parent81b43511317aad3531f28c8d3b204b9f62c9c32a (diff)
git-svn-id: https://opengnsys.es/svn/trunk@1074 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin')
-rw-r--r--admin/Services/includes/ogAdmLib.c28
-rw-r--r--admin/Services/includes/ogAdmLib.h3
-rw-r--r--admin/Services/ogAdmClient/sources/ogAdmClient.c19
-rw-r--r--admin/Services/ogAdmClient/sources/ogAdmClient.h1
-rw-r--r--admin/Services/ogAdmServer/sources/ogAdmServer.cpp61
-rw-r--r--admin/Services/ogAdmServer/sources/ogAdmServer.h1
-rw-r--r--admin/WebConsole/controlacceso.php2
-rw-r--r--admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php1
-rw-r--r--admin/WebConsole/jscripts/aula.js174
-rw-r--r--admin/WebConsole/principal/aula.php64
-rwxr-xr-xadmin/WebConsole/principal/sondeo.php67
11 files changed, 347 insertions, 74 deletions
diff --git a/admin/Services/includes/ogAdmLib.c b/admin/Services/includes/ogAdmLib.c
index 87d74d00..819eefec 100644
--- a/admin/Services/includes/ogAdmLib.c
+++ b/admin/Services/includes/ogAdmLib.c
@@ -191,7 +191,35 @@ char * toma_parametro(const char* nombre_parametro,char *parametros)
}
return(NULL);
}
+//______________________________________________________________________________________________________
+// Función: copiaParametro
+//
+// Descripción:
+// Devuelve una copia del valor de un parámetro
+// Parámetros:
+// - ptrTrama: contenido del mensaje
+// - parametro: Nombre del parámetro
+// Devuelve:
+// Un puntero a la cadena que contiene el valor del parámetro
+// ________________________________________________________________________________________________________
+char* copia_parametro(const char*nombre,char *parametros)
+{
+ int lon;
+ char *prm,*buffer;
+
+ prm=toma_parametro(nombre,parametros); // Toma parámetro
+ if(prm)
+ lon=strlen(prm);
+ else
+ return(NULL);
+ buffer = (char*) malloc(lon); // Toma memoria
+ if (buffer == NULL) { // No hay memoria suficiente para el buffer
+ return (NULL);
+ }
+ strcpy(buffer,prm);
+ return(buffer);
+}
// ________________________________________________________________________________________________________
// Función: split_parametros
//
diff --git a/admin/Services/includes/ogAdmLib.h b/admin/Services/includes/ogAdmLib.h
index aebcb3e3..a964fa9a 100644
--- a/admin/Services/includes/ogAdmLib.h
+++ b/admin/Services/includes/ogAdmLib.h
@@ -1,5 +1,5 @@
-
+#define LONPRM 512
#define LONGITUD_PARAMETROS 4000 // Longitud mínima de la información de la trama (parametros)
#define LONGITUD_CABECERATRAMA 11 // Longitud mínima de la trama completa
#define LONGITUD_TRAMA LONGITUD_PARAMETROS+LONGITUD_CABECERATRAMA // Longitud mínima de la trama completa
@@ -97,6 +97,7 @@ int IgualIP(char *,char *);
void RegistraLog(const char *,int);
struct tm * TomaHora();
char * toma_parametro(const char* ,char *);
+char* copia_parametro(const char*,char *);
int SplitParametros(char**,char*, char*);
int recibe_trama(SOCKET sock,TRAMA* trama);
char* Encriptar(char *);
diff --git a/admin/Services/ogAdmClient/sources/ogAdmClient.c b/admin/Services/ogAdmClient/sources/ogAdmClient.c
index b7eb195c..f9054fdc 100644
--- a/admin/Services/ogAdmClient/sources/ogAdmClient.c
+++ b/admin/Services/ogAdmClient/sources/ogAdmClient.c
@@ -1092,6 +1092,10 @@ int GestionTramas(TRAMA *trama)
res=strcmp(nombrefuncion,"Actualizar");
if(res==0)
return(Actualizar());
+
+ res=strcmp(nombrefuncion,"Sondeo");
+ if(res==0)
+ return(Sondeo());
res=strcmp(nombrefuncion,"ConsolaRemota");
if(res==0)
@@ -1517,6 +1521,21 @@ int Actualizar()
return(res);
}
//______________________________________________________________________________________________________
+// Función: Sondeo
+//
+// Descripción:
+// Sondea a los clientes para comprobar su estatus
+// Parámetros:
+// Ninguno
+// Devuelve:
+// true si el proceso fue correcto o false en caso contrario
+//______________________________________________________________________________________________________
+int Sondeo()
+{
+ //MuestraMensaje(23,NULL);
+ return(true);
+}
+//______________________________________________________________________________________________________
// Función: CrearPerfilSoftware
//
// Descripción:
diff --git a/admin/Services/ogAdmClient/sources/ogAdmClient.h b/admin/Services/ogAdmClient/sources/ogAdmClient.h
index 5d3627df..4f37db9c 100644
--- a/admin/Services/ogAdmClient/sources/ogAdmClient.h
+++ b/admin/Services/ogAdmClient/sources/ogAdmClient.h
@@ -270,6 +270,7 @@ int Apagar(TRAMA*,TRAMA*);
int Reiniciar(TRAMA*,TRAMA*);
int IniciarSesion(TRAMA*,TRAMA*);
int Actualizar();
+int Sondeo();
int CrearPerfilSoftware(TRAMA*,TRAMA*);
int CrearPerfil(char*,char*,char*,char*,char*);
int Nemonico(char*);
diff --git a/admin/Services/ogAdmServer/sources/ogAdmServer.cpp b/admin/Services/ogAdmServer/sources/ogAdmServer.cpp
index 848f2c47..2f2cdeda 100644
--- a/admin/Services/ogAdmServer/sources/ogAdmServer.cpp
+++ b/admin/Services/ogAdmServer/sources/ogAdmServer.cpp
@@ -1890,15 +1890,27 @@ int EjecutarItem(SOCKET s, char *parametros) {
// ________________________________________________________________________________________________________
int DisponibilidadComandos(SOCKET s, char *parametros) {
char *iph, *swd;
- int resul = 0, i;
+ int resul, i;
iph = toma_parametro("iph", parametros); // Toma ip
swd = toma_parametro("swd", parametros); // Toma switch de diponibilidad
- if (strcmp(swd, "1") == 0) // Cliente disponible
- resul = Coloca_estado(iph, CLIENTE_REMBO, s);
- else {
- if (cliente_existente(iph, &i)) // Si ya existe la IP ...
+ if (strcmp(swd, "1") == 0){ // Cliente disponible
+ if (cliente_existente(iph, &i)) { // Si ya existe la IP ...
+ resul = Coloca_estado(iph, CLIENTE_REMBO, s);
+ }
+ else {
+ if (hay_hueco(&i)) { // Busca hueco para el nuevo cliente
+ strcpy(tbsockets[i].ip, iph);// Copia IP
+ tbsockets[i].sock = s; // Guarda el socket
+ strcpy(tbsockets[i].estado, CLIENTE_REMBO); // Actualiza el estado del cliente
+ }
+ else
+ return (false); // No hay huecos
+ }
+ }
+ else{
+ if (cliente_existente(iph, &i)) // Si ya existe la IP ...
resul = borra_entrada(i); // Cliente apagado
}
swcSocket=true;
@@ -2138,11 +2150,17 @@ int enviaEcoConsola(SOCKET s, const char *eco) {
// - parametros: Parámetros de la trama enviada
// ________________________________________________________________________________________________________
int Sondeo(SOCKET s, char *parametros) {
- char *iph;
+ char *iph,*sws;
char nwparametros[LONGITUD_PARAMETROS];
int j;
- iph = toma_parametro("iph", parametros); // Toma ip
+ iph = copia_parametro("iph", parametros); // Toma ip
+ sws = toma_parametro("sws", parametros); // swtich de sondeo "S": sondeo a clientes "T": Lectura de tabla sockets
+ if (sws){ // Sondeo previo a clientes
+ if (strcmp(sws, "S") == 0) // Sondeo previo a clientes
+ Sondear(iph);
+ }
+ // Devuelve estado de la tabla de sockets
nwparametros[0] = '\0';
strcat(nwparametros, "tso="); // Compone retorno tso ( sistemas operativos de los clientes )
for (j = 0; j < MAXIMOS_SOCKETS; j++) {
@@ -2158,6 +2176,35 @@ int Sondeo(SOCKET s, char *parametros) {
return (manda_comando(s, nwparametros));
}
// ________________________________________________________________________________________________________
+// Función: Sondeo
+//
+// Descripción:
+// Esta función hace un sondeo a los clientes para comprobar su estatus
+// Parámetros:
+// - iph: cadena con las ipes
+// ________________________________________________________________________________________________________
+int Sondear(char *iph)
+{
+ char parametros[32];
+ int i,estado_cliente;
+ for (i = 0; i < MAXIMOS_SOCKETS; i++) {
+ if (strncmp(tbsockets[i].ip, "\0", 1) != 0) { // Si es un cliente activo
+ if (IgualIP(iph, tbsockets[i].ip)) { // Si existe la IP en la cadena
+ estado_cliente = strcmp(tbsockets[i].estado, CLIENTE_OCUPADO);
+ if (estado_cliente != 0) { // Cliente NO OCUPADO ...
+ estado_cliente = strcmp(tbsockets[i].estado,CLIENTE_INICIANDO);
+ if (estado_cliente != 0) { // Cliente NO INICIANDO ...
+ strcpy(parametros,"nfn=Sondeo\r");
+ manda_comando(tbsockets[i].sock,parametros);
+ borra_entrada(i);
+ }
+ }
+ }
+ }
+ }
+ return (true);
+}
+// ________________________________________________________________________________________________________
// Función: Actualizar
//
// Descripción:
diff --git a/admin/Services/ogAdmServer/sources/ogAdmServer.h b/admin/Services/ogAdmServer/sources/ogAdmServer.h
index e2ac4006..9161d3b0 100644
--- a/admin/Services/ogAdmServer/sources/ogAdmServer.h
+++ b/admin/Services/ogAdmServer/sources/ogAdmServer.h
@@ -102,6 +102,7 @@ int inclusion_REPO(SOCKET,char *);
int inclusion_cliWINLNX(SOCKET ,char *);
int Sondeo(SOCKET ,char *);
+int Sondear(char *);
int EcoConsola(SOCKET ,char *);
int enviaEcoConsola(SOCKET ,const char *);
int Arrancar(char *);
diff --git a/admin/WebConsole/controlacceso.php b/admin/WebConsole/controlacceso.php
index 3c4afed3..c37c61d6 100644
--- a/admin/WebConsole/controlacceso.php
+++ b/admin/WebConsole/controlacceso.php
@@ -11,8 +11,6 @@
//========================================================================================================
// Variables de sessión de configuración de servidor y base de datos( Modificar aquípara cambio global)
$cnx="localhost;usuog;passusuog;ogBDAdmin;mysql"; // Cadena de conexión a la base de datos
- $ips="SERVERIP"; // IP del servidor de Administración
- $prt="2008"; // Puerto de comunicación con el servidor
$wer="OPENGNSYSURL/pagerror.php"; // Página de redireccionamiento de errores
$wac="OPENGNSYSURL/acceso.php"; // Página de login de la aplicación
$idi="esp"; // Idioma por defecto
diff --git a/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php b/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php
index 1d1b866d..64c122e0 100644
--- a/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php
+++ b/admin/WebConsole/idiomas/php/esp/msgbrowser_esp.php
@@ -30,6 +30,7 @@ $TbMsg=array();
$TbMsg[20]='ATENCIÓN, ha habido algún error en el proceso de Inventario Software';
$TbMsg[21]='El proceso de jecuación del script bash ha terminado correctamente';
$TbMsg[22]='ATENCIÓN, ha habido algún error en el proceso de ejecución del script bash';
+ $TbMsg[23]='Sondeando, por favor espere...';
?>
diff --git a/admin/WebConsole/jscripts/aula.js b/admin/WebConsole/jscripts/aula.js
index 201c4db6..546fb0ea 100644
--- a/admin/WebConsole/jscripts/aula.js
+++ b/admin/WebConsole/jscripts/aula.js
@@ -7,12 +7,173 @@
// Descripción :
// Este fichero implementa las funciones javascript del fichero aulas.php
// *************************************************************************************************************************************************
-var litambito="";
-var idambito="";
-var nombreambito="";
-var currentObj=null;
-var wpadre=window.parent; // Toma frame padre
-var farbol=wpadre.frames["frame_arbol"];
+//________________________________________________________________________________________________________
+
+var cadenaip;
+//________________________________________________________________________________________________________
+
+ function NodoAux(){
+ this.idambito=0;
+ this.ambito=0;
+ this.litambito=null;
+ this.nombreambito=null;
+
+ this.toma_identificador= function(){
+ return(idambito);
+ }
+ this.toma_sufijo= function(){
+ return(litambito);
+ }
+ this.toma_infonodo= function(){
+ return(nombreambito);
+ }
+ // Fin de la clase
+}
+currentNodo=new NodoAux();
+//________________________________________________________________________________________________________
+function nwmenucontextual(o,idmnctx){
+ var menuctx=document.getElementById(idmnctx); // Toma objeto DIV
+ muestra_contextual(ClickX,ClickY,menuctx) // muestra menu
+ Toma_Datos(o);
+}
+//________________________________________________________________________________________________________
+//
+// Toma datos
+//________________________________________________________________________________________________________
+function Toma_Datos(o){
+ var identificador=o.getAttribute("nod");
+ litambito=identificador.split("-")[0];
+ idambito=identificador.split("-")[1];
+ nombreambito=o.getAttribute("value");
+ currentNodo.idambito=idambito;
+ currentNodo.litambito=litambito;
+ currentNodo.nombreambito=nombreambito;
+}
+//________________________________________________________________________________________________________
+function wactualizar_ordenadores(o){
+ Toma_Datos(o);
+ actualizar_ordenadores();
+}
+//________________________________________________________________________________________________________
+//
+// Refresca la visualizaci� del estado de los ordenadores(Clientes rembo y clientes Windows o Linux)
+//________________________________________________________________________________________________________
+function Sondeo(ipes){
+ cadenaip=ipes;
+ reset_contextual(-1,-1) // Oculta menu contextual
+ var wurl="../principal/sondeo.php";
+ var prm="cadenaip="+cadenaip+"&sw=1"; // La primera vez se manda sondeo a los clientes
+ CallPage(wurl,prm,"retornoSondeo","POST");
+ setTimeout("respuestaSondeo();",100);
+}
+//______________________________________________________________________________________________________
+function retornoSondeo(resul){
+ /*
+ if(resul==1)
+ alert(TbMsg[11]);
+ else
+ alert(TbMsg[12]);
+*/
+}
+//________________________________________________________________________________________________________
+function respuestaSondeo(){
+ var wurl="../principal/sondeo.php";
+ var prm="cadenaip="+cadenaip+"&sw=2"; // La primera vez se manda sondeo a los clientes
+ CallPage(wurl,prm,"retornorespuestaSondeo","POST");
+ setTimeout("respuestaSondeo();",5000);
+}
+//______________________________________________________________________________________________________
+function retornorespuestaSondeo(resul){
+ if(resul.length>0){
+ var ip=""; // Dirección IP del ordenador
+ var so=""; // Sistema operativo activo
+ var objOrd=null; // Objeto ordenador
+ var imgOrd="";
+ var cadena=resul.split(";"); // Trocea la cadena devuelta por el servidor de adminsitración
+ for (var i=0;i<cadena.length;i++){
+ var dual=cadena[i].split("/");
+ ip=dual[0];
+ so=dual[1];
+ objOrd=document.getElementById(ip);
+ tbobjOrd=getElementsByAttribute(document.body, "img","ip",ip);
+ if(tbobjOrd.length>0){ // Si existe el objeto
+ objOrd=tbobjOrd[0];
+ imgOrd=soIMG(so); // Toma url de la imagen según su s.o.
+ if(objOrd.sondeo!=so){ // Si es distinto al que tiene ...se cambia la imagen
+ objOrd.src="../images/"+imgOrd;
+ objOrd.sondeo=imgOrd;
+ }
+ }
+ }
+ }
+}
+//______________________________________________________________________________________________________
+function soIMG(so)
+{
+ var MimgOrdenador="";
+ switch(so){
+ case 'INI':
+ MimgOrdenador="ordenador_INI.gif"; // Cliente ocupado
+ break;
+ case 'BSY':
+ MimgOrdenador="ordenador_BSY.gif"; // Cliente ocupado
+ break;
+ case 'OPG':
+ MimgOrdenador="ordenador_RMB.gif"; // Cliente Rembo
+ break;
+ case 'RMB':
+ MimgOrdenador="ordenador_RMB.gif"; // Cliente Rembo
+ break;
+ case 'WS2':
+ MimgOrdenador="ordenador_WS2.gif"; // Windows Server 2003
+ break;
+ case 'W2K':
+ MimgOrdenador="ordenador_W2K.gif"; // Windows 2000
+ break;
+ case 'WXP':
+ MimgOrdenador="ordenador_WXP.gif"; // Windows XP
+ break;
+ case 'WNT':
+ MimgOrdenador="ordenador_WNT.gif"; // Windows NT
+ break;
+ case 'W95':
+ MimgOrdenador="ordenador_W95.gif"; // Windows 95
+ break;
+ case 'W98':
+ MimgOrdenador="ordenador_W98.gif"; // Windows 98
+ break;
+ case 'WML':
+ MimgOrdenador="ordenador_WML.gif"; // Windows Millenium
+ break;
+ case 'LNX':
+ MimgOrdenador="ordenador_LNX.gif"; // Linux
+ default:
+ MimgOrdenador="ordenador_OFF.gif"; // Linux
+ break;
+ }
+ return(MimgOrdenador);
+}
+//______________________________________________________________________________________________________
+// Copyright Robert Nyman, http://www.robertnyman.com
+// Free to use if this text is included
+//______________________________________________________________________________________________________
+function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue){
+ var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
+ var arrReturnElements = new Array();
+ var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
+ var oCurrent;
+ var oAttribute;
+ for(var i=0; i<arrElements.length; i++){
+ oCurrent = arrElements[i];
+ oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
+ if(typeof oAttribute == "string" && oAttribute.length > 0){
+ if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
+ arrReturnElements.push(oCurrent);
+ }
+ }
+ }
+ return arrReturnElements;
+}
//________________________________________________________________________________________________________
//
// Muestra el formulario de captura de datos para modificación
@@ -229,4 +390,5 @@ function incorporarordenador(){
var whref="../varios/incorporaordenadores.php?idaula="+idambito+"&nombreaula="+nombreambito
window.open(whref,"frame_contenidos")
}
+
diff --git a/admin/WebConsole/principal/aula.php b/admin/WebConsole/principal/aula.php
index b3103f4a..72a2a5f0 100644
--- a/admin/WebConsole/principal/aula.php
+++ b/admin/WebConsole/principal/aula.php
@@ -56,6 +56,7 @@ if (!$cmd)
<SCRIPT language="javascript" src="../jscripts/aula.js"></SCRIPT>
<SCRIPT language="javascript" src="../jscripts/opciones.js"></SCRIPT>
<SCRIPT language="javascript" src="../jscripts/constantes.js"></SCRIPT>
+<SCRIPT language="javascript" src="../clases/jscripts/HttpLib.js"></SCRIPT>
<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/comunes_'.$idioma.'.js"></SCRIPT>'?>
<? echo '<SCRIPT language="javascript" src="../idiomas/javascripts/'.$idioma.'/aulas_'.$idioma.'.js"></SCRIPT>'?>
<BODY OnContextMenu="return false">
@@ -102,6 +103,9 @@ echo $flotante->CreaMenuContextual($XMLcontextual);
include_once("../includes/iframecomun.php");
//________________________________________________________________________________________________________
?>
+<SCRIPT language="javascript">
+ Sondeo('<?php echo $cadenaip?>');
+</SCRIPT>
</BODY>
</HTML>
<?
@@ -231,75 +235,19 @@ function pintaordenadores(){
global $servidorhidra,$hidraport;
global $TbMsg;
- $shidra=new SockHidra($servidorhidra,$hidraport);
- $parametros="1"; // Ejecutor
- $parametros.="nfn=Sondeo".chr(13);
- $parametros.="iph=".$cadenaip.chr(13);
-
- $resul=$shidra->conectar(); // Se ha establecido la conexióncon el servidor hidra
- if($resul){
- $resul=$shidra->envia_comando($parametros);
- $trama=$shidra->recibe_respuesta();
- $parametros=substr($trama,$LONCABECERA,strlen($trama)-$LONCABECERA);
- $ValorParametros=extrae_parametros($parametros,chr(13),'=');
- $trama_notificacion=$ValorParametros["tso"];
- $shidra->desconectar();
- }
- for($i=0;$i<$k;$i++){ // Vuelve a recorrer los datos de ordenadores para crear HTML
- $patron=$Mip[$i].'/';
- $pos=EnCadena($trama_notificacion,$patron);
- if($pos>-1){
- $tiposo=substr($trama_notificacion,$pos+strlen($patron),3);
- switch($tiposo){
- case 'INI':
- $MimgOrdenador[$i]="ordenador_INI.gif"; // Cliente ocupado
- break;
- case 'BSY':
- $MimgOrdenador[$i]="ordenador_BSY.gif"; // Cliente ocupado
- break;
- case 'RMB':
- $MimgOrdenador[$i]="ordenador_RMB.gif"; // Cliente Rembo
- break;
- case 'WS2':
- $MimgOrdenador[$i]="ordenador_WS2.gif"; // Windows Server 2003
- break;
- case 'W2K':
- $MimgOrdenador[$i]="ordenador_W2K.gif"; // Windows 2000
- break;
- case 'WXP':
- $MimgOrdenador[$i]="ordenador_WXP.gif"; // Windows XP
- break;
- case 'WNT':
- $MimgOrdenador[$i]="ordenador_WNT.gif"; // Windows NT
- break;
- case 'W95':
- $MimgOrdenador[$i]="ordenador_W95.gif"; // Windows 95
- break;
- case 'W98':
- $MimgOrdenador[$i]="ordenador_W98.gif"; // Windows 98
- break;
- case 'WML':
- $MimgOrdenador[$i]="ordenador_WML.gif"; // Windows Millenium
- break;
- case 'LNX':
- $MimgOrdenador[$i]="ordenador_LNX.gif"; // Linux
- break;
- }
- }
- }
$ntr=0; // Numero de ordenadores por fila
if ($nombreaula!=""){
echo '<DIV>';
echo '<p align=center class=cabeceras><A href="#"><img border=0 id="'.$LITAMBITO_AULAS.'-'.$idaula.'" value="'.$nombreaula.'" src="../images/iconos/aula.gif" onclick="veraulas(this);" oncontextmenu="menucontextual(this,' ."'flo_".$LITAMBITO_AULAS."'" .')" ></A>&nbsp;&nbsp;'.$TbMsg[23].'</br><span id="'.$LITAMBITO_AULAS.'-'.$idaula.'" class=subcabeceras>'.$nombreaula.'</span></p>';
}
- echo '<TABLE style="BORDER-BOTTOM: #d4d0c8 1px solid;BORDER-LEFT: #d4d0c8 1px solid;BORDER-RIGHT: #d4d0c8 1px solid;BORDER-TOP: #d4d0c8 1px solid" align=center><TR>';
+echo '<TABLE style="BORDER-BOTTOM: #d4d0c8 1px solid;BORDER-LEFT: #d4d0c8 1px solid;BORDER-RIGHT: #d4d0c8 1px solid;BORDER-TOP: #d4d0c8 1px solid" align=center><TR>';
for($i=0;$i<$k;$i++){ // Vuelve a recorrer los datos de ordenadores para crear HTML
$ntr++;
echo '<TD>';
echo '<table border=0>';
echo '<tr>';
echo ' <td align=center width=70 height=40>';
- echo ' <a href="#"><img id="'.$LITAMBITO_ORDENADORES.'-'.$Midordenador[$i].'" border=0 value="'.$Mnombreordenador[$i].'" src="../images/'.$MimgOrdenador[$i].'" oncontextmenu="menucontextual(this,'."'flo_".$LITAMBITO_ORDENADORES."'" .')" width="32" height="32"></A>';
+ echo ' <a href="#"><img sondeo="" ip="'.$Mip[$i].'" id="'.$LITAMBITO_ORDENADORES.'-'.$Midordenador[$i].'" border=0 value="'.$Mnombreordenador[$i].'" src="../images/'.$MimgOrdenador[$i].'" oncontextmenu="menucontextual(this,'."'flo_".$LITAMBITO_ORDENADORES."'" .')" width="32" height="32"></A>';
echo ' </td>';
echo '</tr>';
echo '<tr>';
diff --git a/admin/WebConsole/principal/sondeo.php b/admin/WebConsole/principal/sondeo.php
new file mode 100755
index 00000000..8eb5dc70
--- /dev/null
+++ b/admin/WebConsole/principal/sondeo.php
@@ -0,0 +1,67 @@
+<?
+// *************************************************************************************************************************************************
+// 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: sondeo.php
+// Descripción :
+// Consulta el estado de los ordenadores
+// *************************************************************************************************************************************************
+ include_once("../includes/ctrlacc.php");
+ include_once("../clases/SockHidra.php");
+ include_once("../clases/AdoPhp.php");
+ include_once("../includes/constantes.php");
+ include_once("../includes/comunes.php");
+ include_once("../includes/CreaComando.php");
+ //________________________________________________________________________________________________________
+ $cadenaip=0;
+ $sw=0; // Swich para conmutar entre sondeo a clientes o sólo consulta a la tabla de sockets
+
+ if (isset($_POST["cadenaip"])) $cadenaip=$_POST["cadenaip"];
+ 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.
+ //________________________________________________________________________________________________________
+ switch($sw){
+ case 1:
+ $funcion="Sondeo"; // Nombre de la función que procesa la petición
+ $atributos="sws=S";
+ break;
+ case 2:
+ $funcion="Sondeo"; // Nombre de la función que procesa la petición
+ $atributos="sws=T";
+ }
+ $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
+ //________________________________________________________________________________________________________
+ $aplicacion="iph=".$cadenaip.chr(13);
+ //________________________________________________________________________________________________________
+ // Envio al servidor de la petición
+ //________________________________________________________________________________________________________
+ $resul=false;
+ $trama="";
+
+ $parametros="1"; // Ejecutor
+ $parametros.="nfn=".$funcion.chr(13);
+ $parametros.=$atributos.chr(13);
+ $parametros.=$acciones.chr(13);
+ $parametros.=$aplicacion.chr(13);
+
+ //die($parametros);
+
+ $shidra=new SockHidra($servidorhidra,$hidraport);
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $resul=$shidra->envia_comando($parametros);
+ $trama=$shidra->recibe_respuesta();
+ $parametros=substr($trama,$LONCABECERA,strlen($trama)-$LONCABECERA);
+ $ValorParametros=extrae_parametros($parametros,chr(13),'=');
+ $trama_notificacion=$ValorParametros["tso"];
+ $shidra->desconectar();
+ echo $trama_notificacion; // Devuelve respuesta
+ }
+?>