[ PHP ] Script Radio Shoutcast

keop

Hola a todos;
Ya he buscado en el buscador y no he encontrado nada; Estoy buscando un script (en php puro, nada de bloques de Nuke etc) para leer los datos basicos de una radio shoutcast, al estilo server de cs ( que por cierto, si lo teneis a mano tambien me interesa... no lo quiero de gamespy, sino uno que se pueda modificar ^^); Los oyentes, la musica que se esta escuchando, etc.

Pero el problema que tengo esque de variables se poco, y por lo que veo, casi todos los servidores tienen bloqueado el fsockopen(); , almenos los gratuitos ^^

Sabeis de alternativas? o es imposible correr un script de estas caracteristicas hoy en dia...

Repito, no quiero administrarlo, simplemente una lectura basica del archivo XML o lo que use shoutcast, para saber los datos basicos... asias. :)


El codigo que he pillado por ahi y me da error es:

<?

// grabxml 0.1.2 (php)
// 1-12-2001 t. pepper
// yay i made this
// yay i stole some of it off php.net's xml docs pages

// SET THESE VARIABLES

$password="changeme";
$host="host.shoutcast.com";
$port=8000;

// you can change these event handlers to do whatever
// you want upon receiving the XML data. right now, they
// just dump the parsed xml in as pretty a way as they can

function startElement($parser, $name, $attrs) {
global $depth, $lastelem;
if($lastelem!='data') echo "\n";

for ($i = 0; $i < $depth[$parser]; $i++) echo " ";
echo "+ $name ";
$depth[$parser]++;

$lastelem='start';
}

function endElement($parser, $name) {
global $depth, $lastelem;
//echo "/$name ";
if ($lastelem=='data') echo "\n";
$depth[$parser]--;
}

function characterData($parser, $data) {
global $depth, $lastelem;
$data=trim($data);
if ($data) { echo $data; $lastelem='data'; }
}

// here we go

$depth = array();
$lastelem="";

// set up html

echo "<HTML>\n<HEAD><TITLE>XML parsing for $host:$port</TITLE></HEAD>\n<B><PRE>\n";

// connect to sc_serv

$sp=fsockopen($host,$port,&$errno,&$errstr,10);
if(!$sp) die("Could not contact $host:$port - $errstr\n");

set_socket_blocking($sp,false);

// send request

fputs($sp,"GET /admin.cgi?pass=$password&mode=viewxml HTTP/1.1\nUser-Agent:Mozilla\n\n");

// fetch response, timeout if it takes > 15s

for($i=0; $i<30; $i++) {
if(feof($sp)) break; // exit if connection broken
$sp_data.=fread($sp,31337);
usleep(500000);
}

// strip HTTP headers so all we have is XML data

$sp_data=ereg_replace(".*<\?xml ","<?xml ",$sp_data);

/* xml code goes here, here's a plain empty parser */

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");

if (!xml_parse($xml_parser, $sp_data, 1)) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}

xml_parser_free($xml_parser);

// close up HTML

echo "</PRE></BODY></HTML>";

?>

-nazgul-

http://www.hotscripts.com/Detailed/28396.html

keop

Gracias...como lo bajo? En la web del autor...es de pago.

De todas formas hay mas scripts, pero el error es el mismo; Todos los hostings tienen capado el fsockopen()... no hay alternativas?

Warning: fsockopen() has been disabled for security reasons in /usr/export/www/hosting/tadex/status.php on line 16

guner

Necesitas una conexión por sockets para lo que tú quieres, y el servidor no los permite, no hay otra opción.

Raya_Powa

no creo q sea de pago, por que me los acabo de descargar todos :/

Usuarios habituales

  • Raya_Powa
  • guner
  • keop
  • -nazgul-