Foros del Web » Programando para Internet » PHP »

ping en php

Estas en el tema de ping en php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/07/2009, 07:30
 
Fecha de Ingreso: mayo-2005
Mensajes: 18
Antigüedad: 18 años, 11 meses
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
  #2 (permalink)  
Antiguo 02/07/2009, 07:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ping en php

Trata sacando

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

antes del switch, ingresandola en una variable

Código PHP:
$s socket_select($r = array($sock), $w = array($sock), $f = array($sock), 5);
switch(
$s
El error te lo indica claramente que solo variables son permitidas pasar como referencia...

Me dejas saber
  #3 (permalink)  
Antiguo 02/07/2009, 08:22
 
Fecha de Ingreso: mayo-2005
Mensajes: 18
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: ping en php

Hola:

Muchas gracias por tu respuesta tan rápida.

He realizado el cambio pero me sigue dando el mismo error, ahora en la línea:

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

El error es al utilizar $sock
  #4 (permalink)  
Antiguo 02/07/2009, 08:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ping en php

Pues haz lo que te indican saca las variables fuera y luego llamalas en el socket

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

Bueno nunca he usado socket solo estoy viendo el error que te dice.
  #5 (permalink)  
Antiguo 03/07/2009, 00:03
 
Fecha de Ingreso: mayo-2005
Mensajes: 18
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: ping en php

Hola:
Ya lo tengo, muchas gracias por tu ayuda. Un saludo
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:30.