tag:blogger.com,1999:blog-1874462540387931358.post108667032850097523..comments2023-06-02T10:24:29.645+03:00Comments on D-Link Switches: Tips & Tricks: Чтение информации о VLAN по SNMPxcmehttp://www.blogger.com/profile/00447489973145767087noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-1874462540387931358.post-88087025274288841402017-03-27T16:14:03.992+03:002017-03-27T16:14:03.992+03:00на python'e я так делал:
t = ''.join(...на python'e я так делал:<br /><br />t = ''.join(['%08d' % int(bin(int('0x%s' % i, 16)).replace('0b', '')) for i in data.aplit(' ')]),<br /><br />где data - строка, полученная с коммутатора:<br />"FF FF FF E0 00 00 00 00"<br /><br />На выходе получаем '1111111111111111111111111110000000000000000000000000000000000000'stxdtmhttps://www.blogger.com/profile/08665916990626937563noreply@blogger.comtag:blogger.com,1999:blog-1874462540387931358.post-51136340107230771482016-03-22T17:10:06.336+03:002016-03-22T17:10:06.336+03:00последние 4 байта используются в 52-портовых комму...последние 4 байта используются в 52-портовых коммутаторах<br /><br />кусок перла:<br /><br />use Net::SNMP ();<br /><br />my %hex_bin = (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");<br />my $oid = "1.3.6.1.2.1.17.7.1.4.3.1.2.$vid";<br />my ($session,$error) = Net::SNMP->session(Hostname=>$ip,Community=>$comm, Version=>"2c");<br /><br />$result = $session->get_request("$oid");<br />$result = substr ($result->{$oid},2);<br />chomp($result);<br />print "$result\n";<br />for ($i = 0;$i <= length($result)-1; $i += 1) {<br /> $member[$i] = $hex_bin{substr($result,$i,1)};<br /> print "$member[$i] ";<br />}<br />print "\n";Anonymoushttps://www.blogger.com/profile/03770890649037319435noreply@blogger.comtag:blogger.com,1999:blog-1874462540387931358.post-67553920262119476842015-01-14T10:02:59.220+03:002015-01-14T10:02:59.220+03:00Точнее так:
function member_ports($string)
{
$...Точнее так:<br />function member_ports($string)<br />{<br /> $hex = array('Hex-STRING: ',' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');<br /> $bin = array('', '', '0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');<br /> return str_replace($hex, $bin, $string);<br />}<br /><br />PS<br />Прикол какойто. Гугл первый коментраий не публикует, приходится повторно его отправлять :(zendhttps://www.blogger.com/profile/15429995547860519911noreply@blogger.comtag:blogger.com,1999:blog-1874462540387931358.post-59503100281259885092015-01-14T10:02:13.479+03:002015-01-14T10:02:13.479+03:00Точнее так:
function member_ports($string)
{
$...Точнее так:<br />function member_ports($string)<br />{<br /> $hex = array('Hex-STRING: ',' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');<br /> $bin = array('', '', '0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');<br /> return str_replace($hex, $bin, $string);<br />}<br />zendhttps://www.blogger.com/profile/15429995547860519911noreply@blogger.comtag:blogger.com,1999:blog-1874462540387931358.post-41152071102748648802015-01-14T09:50:21.666+03:002015-01-14T09:50:21.666+03:00Вот и я прикидываю и так и сяк, и все равно получа...Вот и я прикидываю и так и сяк, и все равно получается довольно громоздко, с парой циклов...<br /><br />И да тут заметил, что base_convert не совсем правильно отрабатывает если первые порты не являются членами вилана, он просто ведущие нули отбрасывает :( Сделал себе такой кнвертер:<br /><br />$hex = array(' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');<br />$bin = array('', '0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');<br />str_replace($hex, $bin, str_replace('Hex-STRING: ', '', $member_ports));<br /><br />zendhttps://www.blogger.com/profile/15429995547860519911noreply@blogger.comtag:blogger.com,1999:blog-1874462540387931358.post-32763230961144161152015-01-13T19:06:26.211+03:002015-01-13T19:06:26.211+03:00О как! Буду знать.
У меня в swtoolz есть функции п...О как! Буду знать.<br />У меня в swtoolz есть функции по вычислению портов, а где то на python была функция вычисления диапазонов как в d-link, т.е. 1-24 и т.п. Правда последняя довольно громоздкая с неочевидным алгоритмом.xcmehttps://www.blogger.com/profile/00447489973145767087noreply@blogger.comtag:blogger.com,1999:blog-1874462540387931358.post-42855750330012414102015-01-13T13:39:40.697+03:002015-01-13T13:39:40.697+03:00Забавно, даже вырезать ничего не надо:
echo base_...Забавно, даже вырезать ничего не надо:<br /><br />echo base_convert( 'Hex-STRING: 80 00 00 00 00 00 00 00 ' , 16 , 2 );<br /><br />zendhttps://www.blogger.com/profile/15429995547860519911noreply@blogger.comtag:blogger.com,1999:blog-1874462540387931358.post-83469364625775767542015-01-12T20:01:49.076+03:002015-01-12T20:01:49.076+03:00А есть пример кода на Python или PHP?
Вот допустим...А есть пример кода на Python или PHP?<br />Вот допустим вычитал я с коммуатора OID в котором хранятся порты входящие во VLAN, отрезал лишнее конвертировал в HEX в BIN и... И дальше мне воспринимать строку, как массив/список и, индексы этого массива считать номерами портов, а значения, собственно, показателем того является порт членом вилана или нет? Или есть какой-то более логичный способ?zendhttps://www.blogger.com/profile/15429995547860519911noreply@blogger.com