Witam, posiadam statystyki shoutcast, i wyswietla się np. ile osób słucha, aktualny tytuł piosenki ale chciałbym pobrać kto słucha (same ip)

np.

133.25
478.64.87.9
435.87.987.6

ilość słuchaczy: 3

  1. <?php
  2. //Dane serwera
  3. $sc[ip]="ip"; //IP serwera do zmiany!
  4. $sc[port]="port"; //Port serwera do zmiany!
  5. $sc[czas] = "60"; //Czas od?wieżania statywu
  6.  
  7. //Dane statystyk
  8. $sc[table1]="[prezenter][status]";
  9. $sc[table2]="[audycja][status]";
  10. $sc[table3]="[nuta][status]";
  11. $sc[table4]="[ile][status]";
  12.  
  13. if($fp = fsockopen($sc[ip] , $sc[port]))
  14. {
  15. fputs($fp,"GET /index.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
  16. fgets($fp);fgets($fp);fgets($fp);
  17. while(!feof($fp)) $in.=strip_tags(fgets($fp));
  18. fclose($fp);
  19.  
  20. // Funkcja [status]
  21. $m[0]="Server is currently";
  22. $m[1]="";
  23. $mp[0]=strpos($in,$m[0]);
  24. $mp[1]=@strpos($in,$m[1]);
  25. $ml[0]=strlen($m[0]);
  26. $ml[1]=strlen($m[1]);
  27.  
  28. $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , 5 ) ) );
  29.  
  30. if( $tmp[1][0] == "up" )
  31. $dat[status] = "";
  32. elseif( $tmp[1][0] == "down" )
  33. $dat[status] = "Aktualnie nie nadajemy!";
  34. else
  35. $dat[status] = "Nie prawidłowe dane!";
  36.  
  37. if($dat[status]=="")
  38. {
  39.  
  40. // Funkcja [audycja]
  41. $m[0]="Stream Title:";
  42. $m[1]="Content Type:";
  43. $mp[0]=strpos($in,$m[0]);
  44. $mp[1]=strpos($in,$m[1]);
  45. $ml[0]=strlen($m[0]);
  46. $ml[1]=strlen($m[1]);
  47.  
  48. $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) );
  49.  
  50. if( $tmp[1] ) $dat[audycja] = $tmp[1];
  51. else $dat[audycja] = "Nie prawidłowe dane!";
  52.  
  53. // Funkcja [prezenter]
  54. $m[0]="Stream Genre:";
  55. $m[1]="Stream URL:";
  56. $mp[0]=strpos($in,$m[0]);
  57. $mp[1]=strpos($in,$m[1]);
  58. $ml[0]=strlen($m[0]);
  59. $ml[1]=strlen($m[1]);
  60.  
  61. $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) );
  62.  
  63. if( $tmp[1] ) $dat[prezenter] = $tmp[1];
  64. else $dat[prezenter] = "Nie prawidłowe dane!";
  65.  
  66. // Funkcja [ile]
  67. $m[0]="kbps with";
  68. $m[1]="listeners";
  69. $mp[0]=strpos($in,$m[0]);
  70. $mp[1]=strpos($in,$m[1]);
  71. $ml[0]=strlen($m[0]);
  72. $ml[1]=strlen($m[1]);
  73.  
  74. $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) );
  75.  
  76. if( $tmp[1] ) $dat[ile] = $tmp[1][0];
  77. else $dat[ile] = "Nie prawidłowe dane!";
  78.  
  79. // Funkcja [nuta]
  80. $m[0]="Current Song:";
  81. $m[1]="Written by Ste";
  82. $mp[0]=strpos($in,$m[0]);
  83. $mp[1]=strpos($in,$m[1]);
  84. $ml[0]=strlen($m[0]);
  85. $ml[1]=strlen($m[1]);
  86.  
  87. $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) );
  88.  
  89. if( $tmp[1] ) $dat[nuta] = $tmp[1];
  90. else $dat[nuta] = "Nie prawidłowe dane!";
  91.  
  92. }
  93. }
  94. else
  95. {
  96. $dat=array();
  97. $dat[status]="err";
  98. }
  99.  
  100. $co=array('[status]','[audycja]','[prezenter]','[ile]','[nuta]');
  101. $naco=array($dat[status],$dat[audycja],$dat[prezenter],$dat[ile],$dat[nuta]);
  102. $sc[table1]=str_replace($co,$naco,$sc[table1]);
  103. $sc[table2]=str_replace($co,$naco,$sc[table2]);
  104. $sc[table3]=str_replace($co,$naco,$sc[table3]);
  105. $sc[table4]=str_replace($co,$naco,$sc[table4]);
  106.  
  107. ?>