Foros del Web » Programando para Internet » PHP »

Problema con funcion fsockopen()

Estas en el tema de Problema con funcion fsockopen() en el foro de PHP en Foros del Web. Hola muy buenas,primero agradeceros como a otros el esfuerzo que aceis ayudando a gente como yo, que hace poco se an iniciado en este mundo,sin ...
  #1 (permalink)  
Antiguo 30/07/2005, 08:40
 
Fecha de Ingreso: julio-2005
Mensajes: 4
Antigüedad: 18 años, 8 meses
Puntos: 0
Exclamación Problema con funcion fsockopen()

Hola muy buenas,primero agradeceros como a otros el esfuerzo que aceis ayudando a gente como yo, que hace poco se an iniciado en este mundo,sin vosotros no seria posible lo que mucha gente logra.Gracias.Me acabo de registrar en este foro por si me podiais ayudar con un script PHP.

Su Funcion:

Este script lo que hace es hacer un ping a un servidor que le especifiques y depende el estado de este server te muestra on-line o off-line.

El problema:

El servidor al que le hago el ping es de shoutcat (Radio Winamp) y la direccion a la que le hago el ping es de tipo "No-Ip DUC".El problema es que a la hora de comprobar este servidor me sale el siguiente error "Warning: fsockopen(): unable to connect to ecualon.servemp3.com:3420 in /web/htdocs/www.ecualon.com/home/Pn/includes/blocks/ping/ping.php on line 22" He probado con distintos host y el codigo funciona correctamente.(Me muestra on-line) pero con el mio nada.
Si accedo por el explorador a esa direccion me muestra la pagina del shoutcast correctamente,por lo que el codigo deberia funcionar...

Las preguntas:

¿Estos tipos de host no sirven?
¿Tendre algo mal en el codigo?
¿Sera configuracion Pc,Firewall?
El Codigo:

function chkuri($link, $option, $port)
{

$timestart = microtime();

$churl = fsockopen($link, $port, &$errno, &$errstr, 5);

$timeend = microtime();
$diff = number_format(((substr($timeend,0,9)) + (substr($timeend,-10)) - (substr($timestart,0,9)) - (substr($timestart,-10))),4);
$diff = $diff*100;

if (!$churl) {
$message="<b><div class=offline>Offline</div></b>";
}else{
$message="<b><div class=online>Online</div></b> "; $message="<b><div class=online>On-Line<a href=\"http://.$link\">Visitarr</a></div></b> ";if($option==1){ $message = $message."[ ping: ".$diff."ms ]";}
}
echo $message;
}
?>

Donde $link = ecualon.servemp3.com $option = 1 $port = 3420


Bueno espero me podais ayudar.Gracias de antemano.
  #2 (permalink)  
Antiguo 30/07/2005, 13:55
 
Fecha de Ingreso: marzo-2005
Mensajes: 76
Antigüedad: 19 años, 1 mes
Puntos: 0
Usa:

$churl = @fsockopen($link, $port, $errno, $errstr, 5);

en vez de :

$churl = fsockopen($link, $port, &$errno, &$errstr, 5);


... y no olvides, después:

if($churl) fclose($churl);
  #3 (permalink)  
Antiguo 30/07/2005, 17:29
 
Fecha de Ingreso: julio-2005
Mensajes: 4
Antigüedad: 18 años, 8 meses
Puntos: 0
Gracias por la ayuda.... pero el problema no es el que me parezca el error el problema es que con mi servidor shoutcast no funciona el script.S yo a este script le pongo el host $churl = @fsockopen(ecualon.servemp3.com, 8000, $errno, $errstr, 5); aunque lo tenga on-line me muestra el script como Off-Line si le pongo "$churl = @fsockopen(ecualon.com, 80, $errno, $errstr, 5);" o cualquier otro host me funciona correctamente.
¿De que puede ser?

if($churl) fclose($churl); ---> ¿Donde lo pongo? por que tengo esto:

if (!$churl) {
$message="<b><div class=offline>Offline</div></b>";
}else{
$message="<b><div class=online>Online</div></b> "; $message="<b><div class=online>On-Line<a href=\"http://.$link\">Visitarr</a></div></b> ";if($option==1){ $message = $message."[ ping: ".$diff."ms ]";}
}
echo $message;
}
?>
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 01:59.