Tema: ping en php
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/07/2009, 07:30
farelo
 
Fecha de Ingreso: mayo-2005
Mensajes: 18
Antigüedad: 19 años
Puntos: 1
ping en php

Hola, hace mucho tiempo que no me pasaba por aquí, un saludo de nuevo a todos.

Estoy haciendo unas pruebas para mostrar si una página está caída o no con php y ping. Este es el código:


function ping($ip,$port)
{
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_nonblock($sock);
@socket_connect($sock,$ip,$port);

socket_set_block($sock);
switch(socket_select($r = array($sock), $w = array($sock), $f = array($sock), 5))
{
case 2:
$estado="Off";
break;
case 1:
$estado="On";
break;
case 0:
$estado="TimeOut";
break;
}
return $estado;
}
;?>


Y así le llamo:


<?php
echo Ping("xxx.xxx.xx.xx","80");
;?>

Cuando cargo la página me sale el siguiente texto triplicado tres veces:

Strict Standards: Only variables should be passed by reference in .. line...

La línea que me da error es la siguiente:

switch(socket_select($r = array($sock), $w = array($sock), $f = array($sock), 5))

La verdad es que por más que lo busco no encuentro la manera de solucionarlo. Entiendo que estoy llamando mal a la variable, pero no se cómo se debería quedar para que funcione bien. Muchas gracias por vuestra ayuda