Location: PHPKode > projects > SHOUTcast Management Interface > smi-0.3.4/cron/check_bitrate.php
<?php
/*
EDIT THESE SETTINGS TO MATCH YOUR CONFIGURATION
*/
$notify = "hide@address.com";
$rootdir = "/var/www/html/smi";
$dbhost = "localhost";
$dbname = "smi";
$dbuser = "smiuser";
$dbpass = "ch4ng3m3";
$serverhost = "localhost";


/*
DO NOT EDIT BELOW 
*/

$db = mysql_connect("$dbhost", "$dbuser", "$dbpass") or die('Script Could not connect to database');
mysql_select_db("$dbname",$db);
$query = "SELECT id,PortBase,servername,maxbitrate FROM servers ORDER by PortBase DESC";
$data = mysql_query($query);

function stop_server($port,$id,$srvname,$bitrate,$maxrate,$rootdir,$notify) {
mysql_query('UPDATE servers SET enabled="0" where PortBase="'.$port.'" AND id="'.$id.'"');
shell_exec("kill `cat $rootdir/servers/$port$srvname.pid`");
unlink("$rootdir/servers/$port$srvname.pid");
$message = "Server $srvname:$port stopped due to excessive bitrate of $bitrate.  Configured bitrate is $maxrate";
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);
// Send
mail(''.$notify.'', 'Server '.$srvname.' on '.$port.' exceeded bitrate setting', $message);
}

while($result = mysql_fetch_row($data)){

$fp = @fsockopen("$serverhost", $result[1], $errno, $errstr, 30);
                if(!$fp){
                }
                if($fp) {
                fputs($fp,"GET /7.html HTTP/1.0\r\nUser-Agent: XML Reader(Mozilla Compatible)\r\n\r\n");
                while(!feof($fp)) {
                $dataset = fgets($fp, 1000);
                }
                fclose($fp);
                $dataset1 = $dataset;
                $headerinfo = ereg_replace("<body>.*","",$dataset);
                $dataset = ereg_replace(".*<body>", "", $dataset);
                $dataset = ereg_replace("</body>.*", ",", $dataset);
                $entries = explode(",",$dataset);
                $listener=$entries[0];
                $status=$entries[1];
                $listenerpeak = $entries[2];
                $maxlisteners=$entries[3];
                $totallisteners=$entries[4];
                $bitrate=$entries[5];
                $songtitel=$entries[6];

if($result[3] != ''){
		$id = $result[0];
		$port = $result[1];
		$srvname = $result[2];
		$max_rate = $result[3];
			if($bitrate > $max_rate){
				echo "$srvname port $port found to be in bitrate violation, stopping server, emailing admin\n";
				stop_server($port,$id,$srvname,$bitrate,$max_rate,$rootdir,$notify);
						}
			}else{
		echo "$bitrate found on server $result[2]\n";
			}
                }




}


?>
Return current item: SHOUTcast Management Interface