ShoutCast auslesen

#21
Code:
<style type="text/css">
<!--
body,td,th {
	color: #FFFFFF;
}
body {
	background-color: #999999;
}
-->
</style><?php
## shoutcasthack by bikky on ##
$server = "xxx.xxx.xxx.xx"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 8002; //hier den port eintragen (ist standard (autom. korrigiert) 8000)
    $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    
    if ($fp) {
        fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        while(!feof($fp))
            $page .= fgets($fp, 1000);
        fclose($fp);
        $page = ereg_replace(".*<body>", "", $page);
        $page = ereg_replace("</body>.*", ",", $page);
        $numbers = explode(",", $page);
        $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
        $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
        if($connected == 1) {
            $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
            $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
        }
        else
            $wordconnected = "no"; //zusaetzliche variable die ich brauchte
        $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
        $shoutcast_reportedlisteners = $numbers[4]; //
        $shoutcast_bitrate = $numbers[5]; //bitrate ;)
        $shoutcast_cursong = $numbers[6]; //aktueller song
    }
## output on ##    
echo '<html><title>Shoutcasthack by bikky</title><body>';
if ($radio_status == 1) {
	echo 'Anzahl der hörer: ' . $shoutcast_currentlisteners . '<br />';
	echo 'Aktueller Song: >>' . $shoutcast_cursong . '<< <br />';
}	
	else {
		echo '<h1>Sorry aber das radio ist zur zeit offline!</h1>';
}
echo '</body></html>';
## output off ##
## shoutcasthack by bikky off ##
?>
dieser code liest einen port auf einem server aus ...und das klappt.
ich möchte aber von zwei servern mit jeweils 4 ports die zuhörerzahl anzeigen...
klappt das mit so nem code oder braucht man da was ganz anderes?
 
#22
wie wärs mit ner variablen $anz_hoerer = 0; am anfang

dann machst du nach dem ersten durchlauf $anz_hoerer += $shoutcast_currentlisteners;

danach setzt du $server und $port neu und rufst halt das

Code:
<?php
## shoutcasthack by bikky on ##
$anz_hoerer = 0;  // hier wird die gesamtzahl der hörer aufaddiert
$server = "xxx.xxx.xxx.xx"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 8002; //hier den port eintragen (ist standard (autom. korrigiert) 8000)
    $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    
    if ($fp) {
        fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        while(!feof($fp))
            $page .= fgets($fp, 1000);
        fclose($fp);
        $page = ereg_replace(".*<body>", "", $page);
        $page = ereg_replace("</body>.*", ",", $page);
        $numbers = explode(",", $page);
        $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
        $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
        if($connected == 1) {
            $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
            $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
        }
        else
            $wordconnected = "no"; //zusaetzliche variable die ich brauchte
        $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
        $shoutcast_reportedlisteners = $numbers[4]; //
        $shoutcast_bitrate = $numbers[5]; //bitrate ;)
        $shoutcast_cursong = $numbers[6]; //aktueller song
    }

$anz_hoerer += $shoutcast_currentlisteners;  // hier wird die gesamtzahl der hörer aufaddiert
$server = "xxx.xxx.xxx.xx"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 8002; //hier den port eintragen (ist standard (autom. korrigiert) 8000)
    $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    
    if ($fp) {
        fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        while(!feof($fp))
            $page .= fgets($fp, 1000);
        fclose($fp);
        $page = ereg_replace(".*<body>", "", $page);
        $page = ereg_replace("</body>.*", ",", $page);
        $numbers = explode(",", $page);
        $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
        $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
        if($connected == 1) {
            $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
            $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
        }
        else
            $wordconnected = "no"; //zusaetzliche variable die ich brauchte
        $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
        $shoutcast_reportedlisteners = $numbers[4]; //
        $shoutcast_bitrate = $numbers[5]; //bitrate ;)
        $shoutcast_cursong = $numbers[6]; //aktueller song
    }


$anz_hoerer += $shoutcast_currentlisteners;  // hier wird die gesamtzahl der hörer aufaddiert
$server = "xxx.xxx.xxx.xx"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 8002; //hier den port eintragen (ist standard (autom. korrigiert) 8000)
    $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    
    if ($fp) {
        fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        while(!feof($fp))
            $page .= fgets($fp, 1000);
        fclose($fp);
        $page = ereg_replace(".*<body>", "", $page);
        $page = ereg_replace("</body>.*", ",", $page);
        $numbers = explode(",", $page);
        $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
        $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
        if($connected == 1) {
            $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
            $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
        }
        else
            $wordconnected = "no"; //zusaetzliche variable die ich brauchte
        $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
        $shoutcast_reportedlisteners = $numbers[4]; //
        $shoutcast_bitrate = $numbers[5]; //bitrate ;)
        $shoutcast_cursong = $numbers[6]; //aktueller song
    }


$anz_hoerer += $shoutcast_currentlisteners;  // hier wird die gesamtzahl der hörer aufaddiert
$server = "xxx.xxx.xxx.xx"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 8002; //hier den port eintragen (ist standard (autom. korrigiert) 8000)
    $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    
    if ($fp) {
        fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        while(!feof($fp))
            $page .= fgets($fp, 1000);
        fclose($fp);
        $page = ereg_replace(".*<body>", "", $page);
        $page = ereg_replace("</body>.*", ",", $page);
        $numbers = explode(",", $page);
        $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
        $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
        if($connected == 1) {
            $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
            $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
        }
        else
            $wordconnected = "no"; //zusaetzliche variable die ich brauchte
        $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
        $shoutcast_reportedlisteners = $numbers[4]; //
        $shoutcast_bitrate = $numbers[5]; //bitrate ;)
        $shoutcast_cursong = $numbers[6]; //aktueller song
    }
## output on ##    
echo '<html><title>Shoutcasthack by bikky</title><body>';
if ($radio_status == 1) {
	echo 'Anzahl der hörer: ' . $shoutcast_currentlisteners . '<br />';
	echo 'Aktueller Song: >>' . $shoutcast_cursong . '<< <br />';
}	
	else {
		echo '<h1>Sorry aber das radio ist zur zeit offline!</h1>';
}
echo '</body></html>';
## output off ##
## shoutcasthack by bikky off ##
?>
also in jedem block server und port anpassen und das sollte es gewesen sein. ich denke den rest kannst du selber anpassen
 
#23
Danke - Danke lightsaver !
echt klasse bist du ... hast was gut ;-)

Ich habs geschaft die hörerzahl aller streams anzuzeigen und die songs der einzelenen streams....
hier zu sehn

nochmals ... *thx*

greez *ide
 
#25
Shoutcast auslesen Part2

Aufgrund mehrere Anfragen und so habe ich jetzt einen weiteren Teil zum auslesen einen Shoutcast-Stream gebastelt.

Hinweis : Dieses Funktioniert nur wenn die Zugangsdaten zum Shoutcastserver vorhanden sind!

Usage : http://yourdomain.tld/filename.php?listener=true&history=true

damit werden folgende Grundinfos angezeigt (sofern vom Streamer eingetragen):
  • Bitrate
  • Aktuelle Zuhörer
  • Peak Zuhörer
  • Max Zuhörer
  • Servertitel
  • ServerURL
  • ServerGenre
  • Version
  • Liedtitel
  • IRC
  • ICQ
  • AIM
mit listener=true werden die Aktuellen Zuhörer angezeigt (Durchnummeriert mit IP-Adresse, Client und wie lange sie Connected sind).

mit history=true wird die History ausgelesen (standard sind da imho 10 Einträge)
Code :
PHP:
<?php

echo "<html>" . "\n";
echo "	<head>" . "\n";
echo "		<title>" . "\n";
echo "			Shoutcasthack No2 by bikmaek" . "\n";
echo "		</title>" . "\n";
echo "	</head>" . "\n";
echo "	<body>" . "\n";

// Serverdaten

	$scast_host = '127.0.0.1';
	$scast_name = 'my internet radio';
	$scast_port = '8000';
	$scast_pass = 'yourpass';

// 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>Version</td><td>$sc_sever_version</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_playtime</td><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";

?>
mfg bikmaek
 
#26
erstmal danke -- danke an euch profis !
light und bik

kann man denn auch auslesen welcher dj sendet ?
das heist...wenn das radio automatisch läuft ...
...eine anzeige wie "DJ Radio Partyline" ..oder wenn jemand moderiert .. "DJ idefix145"

das problem ist, ..
das radio hat 8 streams... und manchmal 60 hörer,
wenn aber jemand einen stream moderiert wäre es toll das die user auch sehn das wo und auf welchem stream wer moderiert.

gott ohhgott ohhgott habe ich mich halb wegs verständlich ausgedrückt ?

ide
 
#27
Hi zusammen. habe gerade gesehen, dass diese thema schon verdammt alt ist. dennoch hoffe ich hier antworten zu erlnagen :p.

Dein Script (hab das letzte genommen, funktioniert super. suche schon lange nach möglichkeiten die stream-daten auslesen zu lassen.

ich habe nur eine frage:
Ist es möglich mit einem "if"-befehl anzulegen, der mir wenn der stream titel z.b. heißt "hansi live on air" das bild "/ordner/unterordner/hansi.jpg" ausgibt?

habe es schon selbst versucht aber dann zerschießt sich das ganze script und die seite bleibt leer.

Danke euch schon mal im voraus für die antworten.

PS. auch die funktion "if .... " dass wenn der stream offline ist z.b. das bild "/ordner/unterordner/offline.jpg" ausgegeben wird wäre nice. danke



EDIT. CHON GUT HABS HIN BEKOMMEN. HATE EIN PAAR SACHEN FLASCH AUSKOMENTIERT.
 
#28
ich würde statt einer if-Bedingung lieber den switch-Befehl einsetzen:

PHP:
switch ($sc_server_title) {
case "hansi live":
    $bild = "/ordner/unterordner/hansi.jpg"
    break;
case "morningshow mit fritz":
    $bild = "/ordner/unterordner/fritz.jpg"
    break;
default:
    $bild = "/ordner/unterordner/default.jpg"
    break;
}
Mehr dazu unter http://www.php.net/switch
 
#29
Auch eine nice Möglichkeit ... werde mir das mal genauer anschauen. solange lasse ich es über die if-abfrage laufen ... aber danke
 
#30
Hallo erstmal,

ich habe da einen Hack gefunden der folgendes ausliest (ohne Serverpasswort).



Die Frage nun, kann man das Teil evtl. so anpassen das alles in nur einer php drin ist und diese dann abfragen lassen kann?
Ich teste zur Zeit nämlich das wbb3 und dort möchte ich diese Anzeige in einer Portal-Box ausgeben lassen.
Die verschieden Versionen hier funktioneren auch bis auf die letzte.

Habe zwar schon was ähnliche drinn aber dort wird mir der DJ-Name nicht ausgegeben.

Siehe hier:



LG
Jacky
 
#31
Naja, dazu müsste man mal wissen, wie der Hack (?!) aussieht. Aber prinzipiell wird hier nur die Datei 7.html ausgelesen, und die daten aufbereitet. Das sollte jedenfalls ohne probleme in ein wbb3 integriert werden können.
 
#32
ich habe das problem dass ich die ip des sendenden moderator auslesen muss um die wunschbox dem moderator zuzuordnen

wie mach ich das denn am blödsten ?(
 
#34
mit dem am blödsten war eigentlich ironisch aber ich meine wo kann ich den wie auslesen ( wie gesagt ich brauche nur die Ip mehr interresiert mich eigentlich nicht ) nur wo kann ich den durch welche datei wie auslesen

hilft mir da bitte jemand
ich weiss dass man ne mänge in der 7 html auslesen kann aber da steht sie nicht drinn das weiss ich auch aber im login steht sie
 

xeno

Moderator
Mitarbeiter
#35
die ip des moderator kann im admin bereich abgelesen werden. auf diesen wirst du wohl kaum zugriff haben. ich dachte das hätte ich mit meinem post schon deutlich genug angedeutet.
 
#36
ich habe ja passwort und so weiter das ist nicht das problem

ich muss die ip nur auslesen damit ich dem der die ip hatt die wunschbox zuteilen kann

das nur der die wünsche lesen kann der gerade sendet
 
#37
Probleme beim auslesen der 7.html

Hallo erstmal und vorweg ein großes Lob an die Community.
Ich surf hier immer wieder durch und finde die Hilfeleistungen hier echt gut.

Nun zu mir.
Ich bin derzeit dabei ein Internetradio aufzubauen und wir senden bereits mit durchschnittlich 10 zuhörern / Sendung..
GEMA is bezahlt und des Radio is auch angemeldet.
Wie gesagt is ja erst im Aufbau...

Mein Problem:
ich bin auf der suche nach einer möglichkeit die 7.html von shoutcast auszulesen.
Durch google bin ich dann auf des auf Seite eins geposteten Scripts gestoßen und des is genau des richtige...
Aber leider sagt er mir immer, dass das Radio offline is, obwohl wir senden.

Wisst ihr vielleicht woran das liegt?

hier nochmal mein Script:

PHP:
<style type="text/css">
<!--
body,td,th {
	color: #FFFFFF;
}
body {
	background-color: #999999;
}
-->
</style><?php
## shoutcasthack by bikky on ##
$server = "srv1.radioscripte.de"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 10420; //hier den port eintragen (ist standard (autom. korrigiert) 8000)
    $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    
    if ($fp) {
        fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        while(!feof($fp))
            $page .= fgets($fp, 1000);
        fclose($fp);
        $page = ereg_replace(".*<body>", "", $page);
        $page = ereg_replace("</body>.*", ",", $page);
        $numbers = explode(",", $page);
        $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
        $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
        if($connected == 1) {
            $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
            $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
        }
        else
            $wordconnected = "no"; //zusaetzliche variable die ich brauchte
        $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
        $shoutcast_reportedlisteners = $numbers[4]; //
        $shoutcast_bitrate = $numbers[5]; //bitrate ;)
        $shoutcast_cursong = $numbers[6]; //aktueller song
    }
## output on ##    
echo '<html><title>Shoutcasthack by bikky</title><body>';
if ($radio_status == 1) {
	echo 'Anzahl der hörer: ' . $shoutcast_currentlisteners . '<br />';
	echo 'Aktueller Song: >>' . $shoutcast_cursong . '<< <br />';
}	
	else {
		echo '<h1>Sorry aber das radio ist zur zeit offline!</h1>';
}
echo '</body></html>';
## output off ##
## shoutcasthack by bikky off ##
?>
ich hab jetzt mal bewusst stream und port drinnen gelassen, dass ihr mir vll sagen könnt, wo mein fehler liegt.

ich hoffe ihr könnt mir helfen.

Gruß Adi
 
#39
danke für deine Schnelle Antwort!

Hmm komische Sache... ich werd mal schauen ob des tatsächlich so is...
Aber theoretisch gesehen, dürfte ja dann ein Lifestream der per <object> und <embed> eingebunden is ja au ned gehen... der kommuniziert ja auch mit dem Port *g* Oder hab ich da grade nen Denkfehler... naja is ja momentan nur n Freeserver... ich such mir eh bald mal nen richtigen webspace *g*

Also danke nochmal für deine Super Hilfe

[EDIT]

ich habs grade mal local via xampp probiert und da gehts.. wird wohl tatsächlich am Server liegen...

Gruß Adi
 
#40
RE: Probleme beim auslesen der 7.html

Habe den Code nochmals überarbeitet.

- Ausgabe jetzt lesbar (Zeilenumbrüche eingefügt)
- XHTML 1.0 Strict

PHP:
<?php
## shoutcasthack by bikky on ##

#
# Version: 0.5 @ 2008-08-03
#	-	readable output
#	-	XHTML 1.0 Strict
#

if ($_REQUEST['url']  &&  $_REQUEST['port']) {
	$port   = $_REQUEST['port'];
	$server = $_REQUEST['url'];
} else {
	$port   = ''; //hier alternativ deinen server eintragen z.b. musik.de oder 213.61.885.8
	$server = ''; //hier alternativ den port eintragen (standard: 8000)
}

echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n";
echo '<html xmlns="http://www.w3.org/1999/xhtml">' . "\n";

if ($port == '' ||  $server == '') {
	echo '	<head>' . "\n";
	echo '		<title>Shoutcasthack by bikky</title>' . "\n";
	echo '	</head>' . "\n";
	echo '	<body>' . "\n";
	echo '		<h1>ES FEHLEN DATEN!</h1>' . "\n";
	echo '	</body>' . "\n";
	echo '</html>' . "\n";
	
} else {
    
	$playlist = 'http://' . $server . ':' . $port . '/listen.pls';
	$filepointer = @fsockopen($server, $port, $errno, $errstr, 30);
	    
	if ($filepointer) {
	    fputs($filepointer, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
	    while(!feof($filepointer)) {
	        $page .= fgets($filepointer, 1000);
	    }
	    fclose($filepointer);
	    $page = ereg_replace(".*<body>", "", $page);
	    $page = ereg_replace("</body>.*", ",", $page);
	    $content = explode(",", $page);
	    $shoutcast_currentlisteners = $content[0]; //variable ueber die aktuelle anzahl der zuhoerer
	    $connected = $content[1]; //variable zum anzeigen ob ein sender verbunden ist
	    if($connected == 1) {
	        $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
	        $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
	    } else {
	        $wordconnected = "no"; //zusaetzliche variable die ich brauchte
	    }
	    $shoutcast_peaklisteners = $content[2]; //variable die die anzahl der peaks angiebt
	    $shoutcast_maxlisteners = $content[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
	    $shoutcast_reportedlisteners = $content[4]; //
	    $shoutcast_bitrate = $content[5]; //bitrate ;)
	    $shoutcast_cursong = $content[6]; //aktueller song 
	    $shoutcast_testvat = $content[7]; // testvariable
	    $shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
	    $shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
	}
	
	## output on ##
		echo '	<head>' . "\n";    
		echo '		<title>Shoutcasthack by bikky</title>' . "\n";
		echo '	</head>' . "\n";
		echo '	<body>' . "\n";
	if ($radio_status == 1  &&  $server != ''  &&  $port != '') {
		echo '		<p>Hier kannst du hoeren: <a href="' . $playlist . '">' . $playlist . '</a><br />' . "\n";
		echo '		Anzahl der hoerer: ' . $shoutcast_currentlisteners . '<br />' . "\n";
		echo '		Gesamtbandbreite: ' . $shoutcast_curbwidth . ' kb/s<br />' . "\n";
		echo '		Bitrate: ' . $shoutcast_bitrate .' kb/s <br />' . "\n";
		echo '		Zuhoerer Peak: ' . $shoutcast_peaklisteners . '<br />' . "\n";
		echo '		Bandbreite Peak: ' . $shoutcast_peakbwidth . ' kb/s<br />' . "\n";
		echo '		Max. moegliche Zuhoerer: ' . $shoutcast_maxlisteners . '<br />' . "\n";
		echo '		Aktueller Song: "' . $shoutcast_cursong . '"</p>' . "\n";
	} else {
		echo '		<h1>Sorry aber das radio ist zur zeit offline!</h1>' . "\n";
		echo '		<p>Server: "' . $server . '"<br />' . "\n";
		echo '		Port: "' . $port . '"</p>' . "\n";
	}
	echo '	</body>' . "\n";
	echo '</html>' . "\n";
}
## output off ##
## shoutcasthack by bikky off ##
?>
mfg bikky
 
Oben