So ihr lieben habe mich umgeschaut und habe nen script von bekki gefunden wo die xml daten bereitsgeparst werden und alles! problem nur der Vergleich der Datenbank mit dem "Hostname"
Hier der Code!
<?php
echo "<html>" . "\n";
echo " <head>" . "\n";
echo " <title>" . "\n";
echo " Shoutcasthack No2 by bekki" . "\n";
echo " </title>" . "\n";
echo " </head>" . "\n";
echo " <body>" . "\n";
// Serverdaten
$scast_host = 'IP-Adresse des SShoutcastservers';
$scast_name = 'Servername';
$scast_port = 'Port des Servers';
$scast_pass = 'Serverpasswort';
// Viewmodis
if ($_REQUEST['history']) {
$show_sc_songhistory = 1;
}
else {
$show_sc_songhistory = 0;
}
if ($_REQUEST['listener']) {
$show_sc_listeners = 1;
}
else {
$show_sc_listeners = 0;
}
// XML holen
if($fp = @fsockopen($scast_host, $scast_port, $errno, $errstr, 30)) {
if(fputs($fp, "GET /admin.cgi?pass=".$scast_pass."&mode=viewxml HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n")) {
$xmldata = "";
while(!feof($fp)) $xmldata .= fgets($fp, 1000);
$xmldata = explode("\r\n", $xmldata);
$xmldata = $xmldata[3];
}
}
// Regex Funktionen
function get_item($name, $source) {
preg_match('#<'.$name.'>(.*?)</'.$name.'>#', $source, $matches);
return $matches[1];
}
function get_items($name, $source) {
preg_match_all('#<'.$name.'>(.*?)</'.$name.'>#', $source, $matches);
return $matches[1];
}
// Werte aus XML auslesen
$sc_stream_status = get_item("STREAMSTATUS", $xmldata);
if($sc_stream_status) {
$sc_stream_bitrate = get_item("BITRATE", $xmldata);
$sc_listeners_cur = get_item("CURRENTLISTENERS", $xmldata);
$sc_listeners_peak = get_item("PEAKLISTENERS", $xmldata);
$sc_listeners_max = get_item("MAXLISTENERS", $xmldata);
$sc_server_title = get_item("SERVERTITLE", $xmldata);
$sc_server_url = get_item("SERVERURL", $xmldata);
$sc_server_genre = get_item("SERVERGENRE", $xmldata);
$sc_server_version = get_item("VERSION", $xmldata);
$sc_current_song = get_item("SONGTITLE", $xmldata);
$sc_irc = get_item("IRC", $xmldata);
$sc_icq = get_item("ICQ", $xmldata);
$sc_aim = get_item("AIM", $xmldata);
}
if(!($sc_stream_bitrate)) {
echo " <h1>Sorry, aber Server ist offline!</h1>" . "\n";
}
else {
echo " <h3>Allgemeine Infos</h3>" . "\n";
echo " <table border=1>" . "\n";
echo " <tr>" . "\n";
echo " <td>Bitrate</td><td>$sc_stream_bitrate</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>Aktuelle Zuhoerer</td><td>$sc_listeners_cur</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>Peak Zuhoerer</td><td>$sc_listeners_peak</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>Max Zuhoerer</td><td>$sc_listeners_max</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>Servertitel</td><td>$sc_server_title</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>ServerURL</td><td>$sc_server_url</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>ServerGenre</td><td>$sc_server_genre</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>Liedtitel</td><td>$sc_current_song</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>IRC</td><td>$sc_irc</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>ICQ</td><td>$sc_icq</td>" . "\n";
echo " </tr>" . "\n";
echo " <tr>" . "\n";
echo " <td>AIM</td><td>$sc_aim</td>" . "\n";
echo " </tr>" . "\n";
echo " </table>" . "\n";
if ($show_sc_songhistory) {
echo "\n" . " <h3>Songhistory</h3>" . "\n";
echo " <table border=1>" . "\n";
$scast_songs = get_items("SONG", $xmldata);
$count = 0;
for($i=0; $i<count($scast_songs); $i++)
{
$sc_song_playtime = strftime("%d.%m.%y %H:%M", get_item("PLAYEDAT", $scast_songs[$i]));
$sc_song_title = get_item("TITLE", $scast_songs[$i]);
echo " <tr><td>$sc_song_title</td></tr>" . "\n";
}
echo " </table>" . "\n";
} else {
$sc_songhistory = "";
}
if ($show_sc_listeners) {
echo "\n" . " <h3>Zuhörer</h3>" . "\n";
echo " <table border=1>" . "\n";
echo " <tr><th>No.</th><th>Hostname</th><th>Useragent</th><th>Connecttime</th></tr>" . "\n";
$scast_listeners = get_items("LISTENER", $xmldata);
$count = 0;
for($i=0; $i<count($scast_listeners); $i++)
{
$sc_no = $i+1;
$sc_hostname = get_item("HOSTNAME", $scast_listeners[$i]);
$sc_useragent = get_item("USERAGENT", $scast_listeners[$i]);
$sc_connecttime = gmstrftime("%H:%M:%S", get_item("CONNECTTIME",$scast_listeners[$i]));
echo " <tr><td>$sc_no</td><td>$sc_hostname</td><td>$sc_useragent</td><td>$sc_connecttime</td></tr>" . "\n";
}
echo " </table>" . "\n";
}
else {
$sc_listeners = "";
}
}
echo " </body>" . "\n";
echo "</html>" . "\n";
?>
Weiß eventuell jemand rat
Zuletzt modifiziert von Zoddelchen am 19.12.2007 - 22:17:59
Träume nicht dein Leben lang - lebe deinen Traum