Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Bucle a un ping

Estas en el tema de Bucle a un ping en el foro de PHP en Foros del Web. Hola amigos, por diversos motivos me he tenido que mudar rápidamente de visual basic a php. Por lo que si mis conocimientos en el primer ...
  #1 (permalink)  
Antiguo 22/06/2014, 05:27
 
Fecha de Ingreso: junio-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Bucle a un ping

Hola amigos, por diversos motivos me he tenido que mudar rápidamente de visual basic a php.
Por lo que si mis conocimientos en el primer lenguaje son limitados en el segundo... bastantes escasos, en fin:

- Estoy desarrollando una aplicación que me monitorice dos IPs, esto lo consigo haciendo:

function conectividad($ip)
{
exec(sprintf('ping -c 1 -W 1 %s', escapeshellarg($ip)), $resultado, $valor);
return $valor === 0;
}



$ip = '10.93.190.73';
$cadena = conectividad($ip);


if ($cadena)
{
?>
<style type="text/css">#botonnegro{background-color: green;]</style>
<?php
}
else
{
?>
<style type="text/css">#botonnegro{background-color: red;]</style>
<?php
}


Como habéis visto si tengo respuesta el semáforo en verde si no es así lo tengo en rojo,
Hasta aquí no hay muchos problemas, ahora bien si lo quiero meter en un bucle por ejemplo con while, para que esta monitorización sea en tiempo real sin necesidad de refrescar la página ... Batacazo el navegador se queda Pozz, imagino enviando peticiones continuamente, no pudiendo realizar fluidamente ninguna otra tarea.

Recuerdo que con Basic creaba un objeto Backgroundworker para que no me desbordara la aplicación trabajando paralelamente con el resto del programa.
¿Es esto posible en Php?

Gracias y Salu2.
  #2 (permalink)  
Antiguo 22/06/2014, 12:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Bucle a un ping

No, eso no es posible en PHP, PHP es un lenguaje stateless y no puedes dejar pegado un loop esperando una respuesta en el navegador.

En dado caso te sugiero combinar Javascript, y así hacer peticiones mediante AJAX al servidor para obtener información del ping, etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/06/2014, 12:41
 
Fecha de Ingreso: junio-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Bucle a un ping

Gracias pateketrueke,

Mi primera opción era introducir javascript, pero me desanime ya que por lo visto la única manera que había de hacer ping era subiendo un recurso al servidor y preguntarle luego sobre el.
Los ejemplos que he visto son por ejemplo subiendo una foto y determinar si el tamaño es menor o mayor a X haz opción "A" si no , opción "B", en fin de esto hay bastante literatura en Internet.

Yo en este caso necesito hacer un ping a determinadas copiadoras, desgraciadamente no tengo las APIs de ellas por lo que me tengo que pelear a ciegas y además ahora, en programación Web.

En fin quedando cerrada la puerta en php, sin poder utilizar vbscript, ¿Podría ejecutar un Loop a una IP cliente en javascript?

Gracias de nuevo. Salu2.
  #4 (permalink)  
Antiguo 22/06/2014, 13:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Bucle a un ping

Creo que has entendido mal mi respuesta, que PHP no sirva de manera directa para lo que buscas no impide que lo puedas usar de manera indirecta.

Es decir, tu ya tienes resuelto el PING del lado de PHP, entonces utilizando algo de AJAX es como simularía "tiempo real" haciendo llamadas cada N segundos al servidor, entonces se ejecuta tu script PHP normalmente y el resultado se imprime con Javascript.

Yo sólo te dije que usando únicamente PHP no era posible, pero combinando técnicas claro que es posible.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 22/06/2014, 14:34
 
Fecha de Ingreso: junio-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Bucle a un ping

Gracias de nuevo pateketrueke,

Me pondré manos a la obra con AJAX, cuando avance en este tema publicare el resultado, si lo consigo...
En fin voy a documentarme un poco y te cuento.

Gracias y Salu2.
  #6 (permalink)  
Antiguo 25/06/2014, 16:57
 
Fecha de Ingreso: junio-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Bucle a un ping

Hola amigos, después de indagar un poco en las nuevas (para mi) tecnologías WEB me he dado cuenta que se bastante menos de lo que imaginaba, en fin.
Pretendía hacer un tema de php puro, pero por lo visto se esta tornando un poco a javascrip y ajax, ruego me perdonen, y re-direccionen este post dónde crean conveniente, al grano:

He incluido la función conectividad y su resolución en un archivo llamado monitor.php al que pretendo llamarle desde ajax (dicha función esta en el primer post) les comento unas dudas:

Lo pienso llamar desde un body onload.

Antes de este en el head cargo jquery.

<script type="text/javascript" src="/jquery.js"></script>



<script>
function hazping(// 1ª No se si debo pasar las variables de php por ajax o valdría cargando el monitor.php)
{
var // 2º¿Le paso a javascript las variables o no hace falta?
};
$.ajax
({
data: // 3º ¿declaro las variables de monitor.php?
url: 'monitor.php',
type: 'get', //imagino que podrá ser get
success: function (response)
{
Si no le tengo que pasar las variables puedo crear aquí el loop para monitorizar la IP directamente con la variable
$cadena
}
});
}
</script>

Siento mi ignorancia, si me pueden echar una mano en este tema se lo agradecería.

Muchas gracias y Salu2.
  #7 (permalink)  
Antiguo 26/06/2014, 11:57
 
Fecha de Ingreso: junio-2014
Mensajes: 5
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Bucle a un ping

Hola amigos, he encontrado un script que me ha parecido muy interesante para usar ajax y refrescar un div donde se encuente código php insertado. Justo lo que necesitaba, tengo que deciros que lo he acomodado a mis necesidades y funciona perfectamente, esta bastante bien estructurado y explicado.

No he podido verificar la procedencia real pero se encuentra:

[URL="http://vcomputadoras.com/usa-ajax-para-refrescar-un-tag-div/#comment-2829"]http://vcomputadoras.com/usa-ajax-para-refrescar-un-tag-div/#comment-2829[/URL]

Muchas gracias por la atención prestada y Salu2.

Etiquetas: bucle, ping
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:50.