웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
객체를 이용한 winamp 방송정보 알아내는 소스
2003.04.07 18:12
몇몇 분들이 저에게 다중서버정보를 어떻게 알아내느냐는 메일을 보내셔서
이렇게 정보를 공유하겠습니다
방송정보 알아내기 구조체 화일 (winamp_cast_information.php) 내용
<?
class winamp_cast_information {
var $now_listen;
var $max_listen_persons;
var $cast_title;
var $cast_song;
# 단일서버 정보 얻어 오기 메소드 시작
function winamp_cast($cast_ip){
$listen = $this->winamp_shoutcast_listen($cast_ip);
# 현재 청취자수 와 최대청취할수 있는 인원
$this->now_listen += $listen[0];
$this->max_listen_persons += $listen[1];
$cast_info = $this->winamp_shoutcast_info($cast_ip);
$this->cast_title = $this->str_re("title",$cast_info[title]);
$this->cast_song = $this->str_re("song",$cast_info[song]);
}
# 단일서버 정보 얻어 오기 메소드 시작
# 멀티방송 서버 정보 얻어 오기 메소드 시작
function winamp_cast_array_list($array_cast_ip_list){
for($i=0;$i < sizeof($array_cast_ip_list);$i++){
$server_ip = $array_cast_ip_list[$i];
$listen = $this->winamp_shoutcast_listen($server_ip);
# 현재 청취자수 와 최대청취할수 있는 인원
$this->now_listen += $listen[0];
$this->max_listen_persons += $listen[1];
$cast_info = $this->winamp_shoutcast_info($server_ip);
$this->cast_title = $this->str_re("title",$cast_info[title]);
$this->cast_song = $this->str_re("song",$cast_info[song]);
}
}
# 멀티방송 서버 정보 얻어 오기 메소드 끝
### 방송정보를 알아내는 메소드 시작 - 방송제목(title), 현재곡(song) ###
function winamp_shoutcast_info($server_ip){
$server_ip = str_replace("http://", "", $server_ip);
$server_ip = str_replace("/", "", $server_ip);
$info = array();
# 방송주소을 (:)으로 주소(ip)와 포트(port)로 나눈다
$addre = explode(":","$server_ip");
$address = $addre[0];
$port = $addre[1];
$fp1 = fsockopen("$address", $port, $errno, $errstr);
#문단 1 시작
if(!$fp1){
$info[ok] = 0;
#문단 1 끝
#문단 2 시작
}else{
$info[ok] = 1;
# 소켓을 이용해서 서버에 html 형태로 테이타를 보내라고 명령한다
fputs ($fp1, "GET /index.html HTTP/1.0nUser-Agent: Mozilla/4.0nn");
# 소켓의 마지막(eof) 까지 데이타를 읽는다(1024바이트씩)
while(!feof($fp1)){
$end .= fgets($fp1,1024);
}
# 소켓을 닫는다
fclose($fp1);
$end = strip_tags ("$end");
if(eregi("(([1-9]){2,3}) kbps",$end,$arr)){
$info[kbps] = $arr[1];
}
# $end 부분에서 방송제목과 장르, 홈주소 그리고 지금나오는 음악제목를 얻는다
#array("URL:","Stream")
#array("Genre:","Stream")
$info_spl = array(array("Title:","Stream Genre:"),array("Song:","Copyright"));
$val = array("title","song");
for($i=0;$i<2;$i++){
$one = explode ($info_spl[$i][0], $end);
$two = explode($info_spl[$i][1],$one[1]);
$info[$val[$i]] = $two[0];
$end = $one[1];
}
#문단 2 끝
}
# 결과 리턴
return $info;
}
### 방송정보를 알아내는 메소드 끝 - 방송제목(title), 현재곡(song) ###
# 청취자수 알아내는 메소드 시작
function winamp_shoutcast_listen($server_ip){
$listen = array();
$server_ip = str_replace("http://", "", $server_ip);
$server_ip = str_replace("/", "", $server_ip);
# 방송주소을 (:)으로 주소(ip)와 포트(port)로 나눈다
$addre = explode(":","$server_ip");
$address = $addre[0];
$port = $addre[1];
$fp1 = fsockopen("$address", $port, $errno, $errstr);
#문단 1 시작
if(!$fp1){
# 청취자수
$listen[0] = 0;
# 최대 청취자수
$listen[1] = 0;
#문단 1 끝
#문단 2 시작
}else{
# 소켓을 이용해서 서버에 html 형태로 테이타를 보내라고 명령한다
fputs ($fp1, "GET /index.html HTTP/1.0nUser-Agent: Mozilla/4.0nn");
# 소켓의 마지막(eof) 까지 데이타를 읽는다(1024바이트씩)
while(!feof($fp1)){
$end .= fgets($fp1,1024);
}
# 소켓을 닫는다
fclose($fp1);
$end = strip_tags ("$end");
if(eregi("with (([0-9]){1,}) of (([0-9]){1,}) listeners",$end,$arr)){
# 청취자수
$listen[0] = $arr[1];
# 최대 청취자수
$listen[1] = $arr[3];
}
#문단 2 끝
}
# 결과 리턴
return $listen;
# 청취자수 알아내는 메소드 끝
}
function str_re($what,$value){
if($what == "title"){
$end = str_replace("Content Type: audio/mpeg","", $value);
}else if($what == "song"){
$end = str_replace("Written by Stephen 'Tag Loomis, Tom Pepper and Justin Frankel","", $value);
}
return $end;
}
}
?>
방송정보 알아내기 객체를 생성 정보를 알아내는 소스 (winamp_info.php) 내용
<?
# mysql_db 구조체를 만들어놓은 화일 읽어
include("winamp_cast_information.php");
# 새로운 객체($mysqldb)를 생성
$winamp = new winamp_cast_information;
# Mycast(My portrait of Youthful day) 방송국 방송 주소
$cast_ip = "http://218.145.30.154:11100";
$winamp->winamp_cast($cast_ip);
echo "청취자수 : ";
echo $winamp->now_listen;
echo "<br>";
echo "최대가능청취자수 : ";
echo $winamp->max_listen_persons;
echo "<br>";
echo "방송제목 : ";
echo $winamp->cast_title;
echo "<br>";
echo "현재나가는곡 : ";
echo $winamp->cast_song;
echo "<br><br>";
# 뮤클케스트 방송국 방송 주소들
$cast_ip_array = array();
$cast_ip_array[0] = "http://cast1.mukulcast.com:11000";
$cast_ip_array[1] = "http://cast2.mukulcast.com:11000";
$cast_ip_array[2] = "http://cast3.mukulcast.com:11000";
$winamp->winamp_cast_array_list($cast_ip_array);
echo "청취자수 : ";
echo $winamp->now_listen;
echo "<br>";
echo "최대가능청취자수 : ";
echo $winamp->max_listen_persons;
echo "<br>";
echo "방송제목 : ";
echo $winamp->cast_title;
echo "<br>";
echo "현재나가는곡 : ";
echo $winamp->cast_song;
?>
이상 끝!!
젊은날의 초상 My portrait of Youthful day MyCast 웹디팀 MyWD연필(흑심품은연필)......
방송주소 - http://218.145.30.154:11100/
이렇게 정보를 공유하겠습니다
방송정보 알아내기 구조체 화일 (winamp_cast_information.php) 내용
<?
class winamp_cast_information {
var $now_listen;
var $max_listen_persons;
var $cast_title;
var $cast_song;
# 단일서버 정보 얻어 오기 메소드 시작
function winamp_cast($cast_ip){
$listen = $this->winamp_shoutcast_listen($cast_ip);
# 현재 청취자수 와 최대청취할수 있는 인원
$this->now_listen += $listen[0];
$this->max_listen_persons += $listen[1];
$cast_info = $this->winamp_shoutcast_info($cast_ip);
$this->cast_title = $this->str_re("title",$cast_info[title]);
$this->cast_song = $this->str_re("song",$cast_info[song]);
}
# 단일서버 정보 얻어 오기 메소드 시작
# 멀티방송 서버 정보 얻어 오기 메소드 시작
function winamp_cast_array_list($array_cast_ip_list){
for($i=0;$i < sizeof($array_cast_ip_list);$i++){
$server_ip = $array_cast_ip_list[$i];
$listen = $this->winamp_shoutcast_listen($server_ip);
# 현재 청취자수 와 최대청취할수 있는 인원
$this->now_listen += $listen[0];
$this->max_listen_persons += $listen[1];
$cast_info = $this->winamp_shoutcast_info($server_ip);
$this->cast_title = $this->str_re("title",$cast_info[title]);
$this->cast_song = $this->str_re("song",$cast_info[song]);
}
}
# 멀티방송 서버 정보 얻어 오기 메소드 끝
### 방송정보를 알아내는 메소드 시작 - 방송제목(title), 현재곡(song) ###
function winamp_shoutcast_info($server_ip){
$server_ip = str_replace("http://", "", $server_ip);
$server_ip = str_replace("/", "", $server_ip);
$info = array();
# 방송주소을 (:)으로 주소(ip)와 포트(port)로 나눈다
$addre = explode(":","$server_ip");
$address = $addre[0];
$port = $addre[1];
$fp1 = fsockopen("$address", $port, $errno, $errstr);
#문단 1 시작
if(!$fp1){
$info[ok] = 0;
#문단 1 끝
#문단 2 시작
}else{
$info[ok] = 1;
# 소켓을 이용해서 서버에 html 형태로 테이타를 보내라고 명령한다
fputs ($fp1, "GET /index.html HTTP/1.0nUser-Agent: Mozilla/4.0nn");
# 소켓의 마지막(eof) 까지 데이타를 읽는다(1024바이트씩)
while(!feof($fp1)){
$end .= fgets($fp1,1024);
}
# 소켓을 닫는다
fclose($fp1);
$end = strip_tags ("$end");
if(eregi("(([1-9]){2,3}) kbps",$end,$arr)){
$info[kbps] = $arr[1];
}
# $end 부분에서 방송제목과 장르, 홈주소 그리고 지금나오는 음악제목를 얻는다
#array("URL:","Stream")
#array("Genre:","Stream")
$info_spl = array(array("Title:","Stream Genre:"),array("Song:","Copyright"));
$val = array("title","song");
for($i=0;$i<2;$i++){
$one = explode ($info_spl[$i][0], $end);
$two = explode($info_spl[$i][1],$one[1]);
$info[$val[$i]] = $two[0];
$end = $one[1];
}
#문단 2 끝
}
# 결과 리턴
return $info;
}
### 방송정보를 알아내는 메소드 끝 - 방송제목(title), 현재곡(song) ###
# 청취자수 알아내는 메소드 시작
function winamp_shoutcast_listen($server_ip){
$listen = array();
$server_ip = str_replace("http://", "", $server_ip);
$server_ip = str_replace("/", "", $server_ip);
# 방송주소을 (:)으로 주소(ip)와 포트(port)로 나눈다
$addre = explode(":","$server_ip");
$address = $addre[0];
$port = $addre[1];
$fp1 = fsockopen("$address", $port, $errno, $errstr);
#문단 1 시작
if(!$fp1){
# 청취자수
$listen[0] = 0;
# 최대 청취자수
$listen[1] = 0;
#문단 1 끝
#문단 2 시작
}else{
# 소켓을 이용해서 서버에 html 형태로 테이타를 보내라고 명령한다
fputs ($fp1, "GET /index.html HTTP/1.0nUser-Agent: Mozilla/4.0nn");
# 소켓의 마지막(eof) 까지 데이타를 읽는다(1024바이트씩)
while(!feof($fp1)){
$end .= fgets($fp1,1024);
}
# 소켓을 닫는다
fclose($fp1);
$end = strip_tags ("$end");
if(eregi("with (([0-9]){1,}) of (([0-9]){1,}) listeners",$end,$arr)){
# 청취자수
$listen[0] = $arr[1];
# 최대 청취자수
$listen[1] = $arr[3];
}
#문단 2 끝
}
# 결과 리턴
return $listen;
# 청취자수 알아내는 메소드 끝
}
function str_re($what,$value){
if($what == "title"){
$end = str_replace("Content Type: audio/mpeg","", $value);
}else if($what == "song"){
$end = str_replace("Written by Stephen 'Tag Loomis, Tom Pepper and Justin Frankel","", $value);
}
return $end;
}
}
?>
방송정보 알아내기 객체를 생성 정보를 알아내는 소스 (winamp_info.php) 내용
<?
# mysql_db 구조체를 만들어놓은 화일 읽어
include("winamp_cast_information.php");
# 새로운 객체($mysqldb)를 생성
$winamp = new winamp_cast_information;
# Mycast(My portrait of Youthful day) 방송국 방송 주소
$cast_ip = "http://218.145.30.154:11100";
$winamp->winamp_cast($cast_ip);
echo "청취자수 : ";
echo $winamp->now_listen;
echo "<br>";
echo "최대가능청취자수 : ";
echo $winamp->max_listen_persons;
echo "<br>";
echo "방송제목 : ";
echo $winamp->cast_title;
echo "<br>";
echo "현재나가는곡 : ";
echo $winamp->cast_song;
echo "<br><br>";
# 뮤클케스트 방송국 방송 주소들
$cast_ip_array = array();
$cast_ip_array[0] = "http://cast1.mukulcast.com:11000";
$cast_ip_array[1] = "http://cast2.mukulcast.com:11000";
$cast_ip_array[2] = "http://cast3.mukulcast.com:11000";
$winamp->winamp_cast_array_list($cast_ip_array);
echo "청취자수 : ";
echo $winamp->now_listen;
echo "<br>";
echo "최대가능청취자수 : ";
echo $winamp->max_listen_persons;
echo "<br>";
echo "방송제목 : ";
echo $winamp->cast_title;
echo "<br>";
echo "현재나가는곡 : ";
echo $winamp->cast_song;
?>
이상 끝!!
젊은날의 초상 My portrait of Youthful day MyCast 웹디팀 MyWD연필(흑심품은연필)......
방송주소 - http://218.145.30.154:11100/
댓글 4
-
ZipShin
2003.04.08 13:17
-
흑심품은연필
2003.04.26 09:03
네 가능해요 정답을 알고 있으시면서 이히 -
남상규
2003.05.07 11:21
우와!!! 대단하다! 안 그래도 질문 남기려다 검색했더니 나오네! 고맙습니다! 꼭 원하던 소스... -
남상규
2003.05.07 11:27
이 소스를 약간 수정해 보았습니다.(winamp_info.php)
<?
# mysql_db 구조체를 만들어놓은 화일 읽어
include("winamp_cast_information.php");
# 새로운 객체($mysqldb)를 생성
$winamp = new winamp_cast_information;
# Mycast(My portrait of Youthful day) 방송국 방송 주소
$cast_ip = "http://pmonzzang.w3ip.com:8000";
$winamp->winamp_cast($cast_ip);
echo "청취자수 : ";
echo $winamp->now_listen;
echo "<br>";
echo "최대가능청취자수 : ";
echo $winamp->max_listen_persons;
echo "<br>";
echo "방송제목 : ";
if($winamp -> cast_title) echo $winamp->cast_title;
else echo "지금은 방송중이 아닙니다.";
echo "<br>";
echo "현재나가는곡 : ";
if($winamp -> cast_song) echo $winamp->cast_song;
else echo "지금은 방송중이 아닙니다.";
echo "<br><br>";
?>
뮤클캐스트 전 안 하니까 없앴구요, 방송중이 아니면 '지금은 방송중이 아닙니다.'라고 나오게 했습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
개판 오분전 세션 - 6 | 미친개 | 2003.04.08 |
개판 오분전 세션 - 5 | 미친개 | 2003.04.08 |
개판 오분전 세션 - 4 | 미친개 | 2003.04.08 |
개판 오분전 세션 - 3 [4] | 미친개 | 2003.04.08 |
개판 오분전 세션 - 2 [4] | 미친개 | 2003.04.08 |
개판 오분전 세션 - 1 [7] | 미친개 | 2003.04.08 |
객체를 이용한 winamp 방송정보 알아내는 소스 [4] | 흑심품은연필 | 2003.04.07 |
내 홈피도 채널을?! #1 [16] | (' _ ') napclub | 2003.03.31 |
이젠 주소검색 편하게쓰자~~~!! (새창띄우지 않습니다) [5] | _-=Knight=-_ | 2003.03.05 |
메일 인증시 기존 회원 전부 인증걸기;;; [4] | teslaMINT | 2003.03.04 |
게시판 통체 인클루드 하기 [12] | 깜보 | 2003.03.02 |
여러분이 원하시던 로또복권 소스공개~ [12] | Dopesoul | 2003.02.22 |
NZEO 이메일 인증 따라하기 [또 수정 --;] [44] | teslaMINT | 2003.02.22 |
계정이 php를 지원하는지아닌지 잘 모를때... [16] | 격투왕맹호 | 2003.02.19 |
유용한 함수 몇가지...;;;; [7] | Yuki-H. | 2003.02.19 |
PHP,자바스크립트 제 3탄! 아래에 헤더로 asx감추기를 이용한 PHP무비 플레이어! | ☆좀비파우더™ | 2003.02.16 |
DB를 이용한 현재접속자 수 구하기 [6] | 김현석 | 2003.02.14 |
[초간단] 헤더로 asx 파일 음악 주소를 숨겨봐요. [9] | 모라미 | 2003.02.14 |
제로보드 스킨들이 어느 게시판에 쓰이는지 알아보는 소스 [12] | teslaMINT | 2003.02.11 |
V3 neo+ 항상 최신버전으로 자동링크시키기 [7] | 김현석 | 2003.02.08 |
$cast_ip_array[1] = "http://cast2.mukulcast.com:11000";
$cast_ip_array[2] = "http://cast3.mukulcast.com:11000";
이라는 배열을 사용함으로써, 여러개의 방송 주소를 더 많이 첨가 할수있어요?