SiXeD Posted September 12, 2011 Posted September 12, 2011 Цель такова, отслеживать подписку к multicast группе Какой пользователь, к какой группе, в какое время подписался (не используя middleware) Есть ли какие идеи? Вставить ник Quote
s.lobanov Posted September 12, 2011 Posted September 12, 2011 Включить debug igmp и отправлять на удалённый syslog? Вставить ник Quote
SiXeD Posted September 12, 2011 Author Posted September 12, 2011 Включить debug igmp и отправлять на удалённый syslog? на сервере трансляции нет функции debug на свичах тоже, нужен альтернативный вариант Вставить ник Quote
mschedrin Posted September 12, 2011 Posted September 12, 2011 Включить debug igmp и отправлять на удалённый syslog? на сервере трансляции нет функции debug на свичах тоже, нужен альтернативный вариант А что за оборудование в сети стоит, через которое проходит мультикаст? Есть несколько вариантов. Вставить ник Quote
SiXeD Posted September 12, 2011 Author Posted September 12, 2011 А что за оборудование в сети стоит, через которое проходит мультикаст? Есть несколько вариантов. d-link des-3028, в сеть приходит голый мультикас Вставить ник Quote
s.lobanov Posted September 12, 2011 Posted September 12, 2011 SiXeD У вас весь мультикаст по L2 бегает? На 3028 настроен ism? Если есть ism, то вы не увидете всех join-ов и leave-ов выше, а поскольку debug-а нет, то в общем случае никак. Можно ещё периодически забирать таблицу igmp snooping, но тогда быстрые переключения вы не зафиксируете Вставить ник Quote
SiXeD Posted September 12, 2011 Author Posted September 12, 2011 Можно ещё периодически забирать таблицу igmp snooping, но тогда быстрые переключения вы не зафиксируете Большое спасибо за идею. Вставить ник Quote
s.lobanov Posted September 12, 2011 Posted September 12, 2011 SiXeD Ну ещё надо проверить умеют ли эти длинки отдавать таблицу igmp по snmp(а иначе геморройно). Если Вы это делаете ради статистики, то забудьте, абоненты выключают телек и не выключают stb, получается не статистика популярности, а хз что. Когда stb будут интегрированы в телеки, тогда эта задача будет актуальна. Вставить ник Quote
breusovok Posted September 12, 2011 Posted September 12, 2011 У нас не коммерческий юникаст, проигрыватель IPTv Player умеет отсылать статистику по просмотрам на сервер в XML. думаю и на приставки можно прикруть нечто подобное. Вставить ник Quote
SiXeD Posted September 13, 2011 Author Posted September 13, 2011 Всем спасибо, а вот первые наброски мож кому пригодятся #!/usr/bin/php <?php $hb = array("0"=>'0000', "1"=>'0001', "2"=>'0010', "3"=>'0011', "4"=>'0100',"5"=>'0101',"6"=>'0110',"7"=>'0111',"8"=>'1000',"9"=>'1001',"a"=>'1010',"b"=>'1011',"c"=>'1100',"d"=>'1101',"e"=>'1110',"f"=>'1111'); function Sget($ip, $id) { $community = 'пароль свича'; $sysdesc = @snmpwalk($ip, $community, $id, 100); return $sysdesc; } function Sgetoid($ip, $id) { $community = 'пароль свича'; $sysdesc = @snmpwalkoid($ip, $community, $id, 100000); return $sysdesc; } function Svlan($ip) { global $hb; $count=0; $port = Sgetoid($ip, '1.3.6.1.4.1.171.11.63.6.2.7.5.1.4.100'); foreach ($port as $keys=>$values) { $port = ereg_replace(".*SNMPv2-SMI::enterprises.171.11.63.6.2.7.5.1.4.100.","",$keys); $res = strtolower(str_replace(" ","",str_replace('Hex-STRING: ','',$values))); if (substr($port, 0, 3)=='224') { $ports=''; for ($i=0; $i<=strlen($res); $i++) {$ports.=$hb[$res[$i]]; } for ($i=0; $i<=48; $i++) if ($ports[$i]=="1") $result[$i+1][]=$port; } } return $result; } exec("cat /remote_snmp/ip ", $tmp); #фаил с ip свичей #$tmp[]='ip свича'; foreach($tmp as $key=>$value) { $vlan[$value]=Svlan($value); // break; } print_r($vlan); ?> PS: 250 свичей проходит за 2-3 секунды Вставить ник Quote
s.lobanov Posted September 13, 2011 Posted September 13, 2011 snmpwalk php-шный очень кривой, лучше его не использовать. вызывайте внешний snmpwalk, а ещё лучше bulkwalk, если оборудование поддерживает. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.