0

スクリプトを使用して、Shoutcast サーバーがオンラインかオフラインかを照会しようとしています。以下のコードは、私が現在使用しているものです。

$vt_ip = "ip";
$vt_port = "port";

$output = @fsockopen($vt_ip, $vt_port, $errno, $errstr, 2);

if (!$output) {
echo "<FONT CLASS=f1 COLOR=#DD0000><B>OFFLINE</B></FONT>";
} else {
echo "<FONT CLASS=f1 COLOR=#00DD00><B>ONLINE</B></FONT>";
}

@fclose($output);

しかし、更新されず、オフライン状態のままです。

どんな助けでも大歓迎です。

4

2 に答える 2

0

ストリームが機能しているかどうかを判断するには、単に SHOUTcast サーバーへの TCP 接続を確立するだけでは十分ではありません。実際、実行中の SHOUTcast サーバーは、再生用のストリームがなくても、常に TCP 接続を受け入れます。

接続してストリームを要求し、リターン ステータス コードを確認する必要があります。接続したら、次のデータを送信します。

GET /; HTTP/1.0

それに続いて\r\n\r\n. を取得するまで、ストリームからデータを読み戻します\r\n\r\n。その後、切断できます。最初の応答行のステータス コードを確認し、それが であるかどうかを確認します200。そうであれば、アクティブなストリームがあります。

于 2013-08-03T15:36:48.420 に答える