ОсновноеRadiotalkПользовательское
Технологии вещания, софт, скрипты
7   •   Посмотреть все темы

Получить список ip адресов слушателей

 

44
firefedot @firefedot
А вообще. может кому тоже пригодиться искать не ведомое))),, то много можно найти в исходниках.
Например, не мог найти, как получить id для Кика пользователя с точки. А на самом деле просто, может конечно кто знал, я не знал), но в исходниках. в папке src есть файл admin.c и там как раз есть все то что отображено в админке и там на строчке (примерно) 731

xmlNewChild(listenernode, NULL, XMLSTR("ID"), XMLSTR(buf));

От сюда получаем как правильно обратится к этой будущей переменной.
Так что, в исходниках можно найти все что нужно, главное искать не там. где светло, а там где надо)

А сам файл listclients.xsl пока оставил вида xml. как и писал выше

  1.  
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="xml" encoding="UTF-8" />
  4. <xsl:template match = "/icestats" >
  5. <icecast>
  6. <xsl:for-each select="source">
  7. <mount><xsl:value-of select="@mount" /></mount>
  8. <xsl:choose>
  9. <xsl:when test="listener">
  10. <xsl:variable name = "themount"><xsl:value-of select="@mount" /></xsl:variable>
  11. <xsl:for-each select="listener">
  12. <users>
  13. <id><xsl:value-of select="ID" /></id>
  14. <ip><xsl:value-of select="IP" /></ip>
  15. <username><xsl:if test="username">
  16. (<xsl:value-of select="username" />)
  17. </xsl:if></username>...............
  18. <time><xsl:value-of select="Connected" /></time>
  19. <client><xsl:value-of select="UserAgent" /></client>
  20. </users>
  21. </xsl:for-each>
  22. </xsl:when>
  23. </xsl:choose>
  24. </xsl:for-each>
  25. </icecast>
  26. </xsl:template>
  27. </xsl:stylesheet>


А что бы кикать в файле обработчике, назову его так) сделал так (приведу весь файл. может кто поправит. как правильней и лучше сделать))


<?php
$url = 'http://admin:pass@10.0.0.1:8888/admin/listclients.xsl?mount=/home';

echo '<p>Список тех кто слушает</p>';
echo '<table id="select" border="1">';
echo '<thead>';
echo '<tr>';
echo '<th>ip</th>';
echo '<th>Имя</th>';
echo '<th>Времени слушает</th>';
echo '<th>Действия</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';

$smpl_xml=simplexml_load_file($url);
$mount = $smpl_xml->mount;
echo "Точка вещания <b>".$mount."</b>";
foreach ($smpl_xml->users as $us){
$ip2=$us->ip;
$time2=(int)$us->time;
$id2=$us->id;
$time_hour= floor($time2/3600);
$time_all= date('i:s',$time2);
echo '<tr><td>'.$ip2.'</td><td>'.$us->username.'</td><td align="center">'.$time_hour.':'.$time_all.'</td><td><a href="http://10.0.0.1:8888/admin/killclient.xsl?mount=/home&amp;id='.$id2.'" >Отключить</a></td></tr>';
}
echo '</tbody>';
echo '</table>';



Конечно, надо все до конца облагородить переменными и получением точки вещания из админки ... но может и это пригодится кому. хотя не знаю, видимо таких извращенцев не много )))

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.