URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7133
[ Назад ]

Исходное сообщение
"PHP & SNMP"

Отправлено nasswell , 07-Фев-11 11:08 
есть такой кусок:

$mib = "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan";
$a = snmpwalk($ip, "public", $mib);
for ($i=0; $i < count($a); $i++) {
print $a;
}

Выполняется что-то вида snmpwalk -v 2c -c public $ip $mib
Здесь все понятно и на выходе я вижу значения snmp запроса в виде номеров портов.
Вопрос в следующем, как я могу получить в выводе весь $mib целиком, так как после последовательности "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan" следуют MACи в DEC которые мне нужны?
Заранее огромное спасибо за помощь!!!


Содержание

Сообщения в этом обсуждении
"PHP & SNMP"
Отправлено Pahanivo , 09-Фев-11 08:59 
>[оверквотинг удален]
> for ($i=0; $i < count($a); $i++) {
> print $a;
> }
> Выполняется что-то вида snmpwalk -v 2c -c public $ip $mib
> Здесь все понятно и на выходе я вижу значения snmp запроса в
> виде номеров портов.
> Вопрос в следующем, как я могу получить в выводе весь $mib целиком,
> так как после последовательности "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan" следуют MACи в DEC
> которые мне нужны?
> Заранее огромное спасибо за помощь!!!

что значит "целиком" ?


"PHP & SNMP"
Отправлено nasswell , 09-Фев-11 20:10 
>[оверквотинг удален]
>> print $a;
>> }
>> Выполняется что-то вида snmpwalk -v 2c -c public $ip $mib
>> Здесь все понятно и на выходе я вижу значения snmp запроса в
>> виде номеров портов.
>> Вопрос в следующем, как я могу получить в выводе весь $mib целиком,
>> так как после последовательности "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan" следуют MACи в DEC
>> которые мне нужны?
>> Заранее огромное спасибо за помощь!!!
> что значит "целиком" ?

В виде:
1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec = Integer XX, а не только массив из "Integer XX"


"PHP & SNMP"
Отправлено Pahanivo , 10-Фев-11 09:16 
> В виде:
> 1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec = Integer XX, а не только массив из "Integer
> XX"

ммм что то я не припомню чтобы по snmp отдавались массивы - каждая ветка MIB имеет вполне определенный тип - string, integer и т.д.
1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan
1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec
это как бы разные значения - объедененные иерархией дерева MIB
о каком массиве речь?


"PHP & SNMP"
Отправлено nasswell , 10-Фев-11 12:14 
>> В виде:
>> 1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec = Integer XX, а не только массив из "Integer
>> XX"
> ммм что то я не припомню чтобы по snmp отдавались массивы -
> каждая ветка MIB имеет вполне определенный тип - string, integer и
> т.д.
> 1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan
> 1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec
> это как бы разные значения - объедененные иерархией дерева MIB
> о каком массиве речь?

php выполняет snmpwalk, который, от заданного корня, в данном случае "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan", вниз по дереву последовательно снимает значения MIBов "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec", получает с каждого MIBа значение типа "Integer: XX", и помещает их в массив @a["Integer: 1", "Integer: 2",... и т.д.].
Я получаю в @a только массив из возвращаемых значений, а мне еще нужно получить массив из выполняемых MIBов, этих самых "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec". Хотелось бы знать можно ли это решить средствами php.


"PHP & SNMP"
Отправлено Pahanivo , 10-Фев-11 12:35 
> php выполняет snmpwalk, который, от заданного корня, в данном случае "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan",
> вниз по дереву последовательно снимает значения MIBов "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec",
> получает с каждого MIBа значение типа "Integer: XX", и помещает их
> в массив @a["Integer: 1", "Integer: 2",... и т.д.].
> Я получаю в @a только массив из возвращаемых значений, а мне еще
> нужно получить массив из выполняемых MIBов, этих самых "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec".
> Хотелось бы знать можно ли это решить средствами php.

эти самые называются OID, множество OID есь MIB
это не поможет:
http://www.php.net/manual/en/function.snmpwalkoid.php
Returns an associative array with object ids and their respective object value starting from the object_id as root or FALSE on error.



"PHP & SNMP"
Отправлено nasswell , 10-Фев-11 17:35 
>[оверквотинг удален]
>> получает с каждого MIBа значение типа "Integer: XX", и помещает их
>> в массив @a["Integer: 1", "Integer: 2",... и т.д.].
>> Я получаю в @a только массив из возвращаемых значений, а мне еще
>> нужно получить массив из выполняемых MIBов, этих самых "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec".
>> Хотелось бы знать можно ли это решить средствами php.
> эти самые называются OID, множество OID есь MIB
> это не поможет:
> http://www.php.net/manual/en/function.snmpwalkoid.php
> Returns an associative array with object ids and their respective object value
> starting from the object_id as root or FALSE on error.

Спасибо за поправку и за подсказку. Я немного запутался в терминологии. Я рассматривал такой вариант, но тогда скрипт получится немного громоздким. Мне идеально подходит формат OID "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec = Integer: XX". Т.к в данном случае я сразу могу получить и значение для переменной $MacInDec и $Port = "Integer: XX", которыми я могу манипулировать в дальнейшем.


"PHP & SNMP"
Отправлено nasswell , 10-Фев-11 19:13 
>[оверквотинг удален]
>> это не поможет:
>> http://www.php.net/manual/en/function.snmpwalkoid.php
>> Returns an associative array with object ids and their respective object value
>> starting from the object_id as root or FALSE on error.
> Спасибо за поправку и за подсказку. Я немного запутался в терминологии. Я
> рассматривал такой вариант, но тогда скрипт получится немного громоздким. Мне идеально
> подходит формат OID "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec = Integer: XX". Т.к
> в данном случае я сразу могу получить и значение для переменной
> $MacInDec и $Port = "Integer: XX", которыми я могу манипулировать в
> дальнейшем.

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


"PHP & SNMP"
Отправлено Miro , 15-Авг-13 15:06 
>[оверквотинг удален]
>>> Returns an associative array with object ids and their respective object value
>>> starting from the object_id as root or FALSE on error.
>> Спасибо за поправку и за подсказку. Я немного запутался в терминологии. Я
>> рассматривал такой вариант, но тогда скрипт получится немного громоздким. Мне идеально
>> подходит формат OID "1.3.6.1.2.1.17.7.1.2.2.1.2.$vlan.$MacInDec = Integer: XX". Т.к
>> в данном случае я сразу могу получить и значение для переменной
>> $MacInDec и $Port = "Integer: XX", которыми я могу манипулировать в
>> дальнейшем.
> Есть еще вариант использовать snmprealwalk, но я пока не могу разобраться с
> выводом, там получается на выходе массив элементы которого являются массивами.

$a = snmpwalkoid($ip, "public", $mib);
foreach ( $a as $key => $value ) {
     echo $key . $value . "<br/>";
}

В $key и хранятся значения, которые необходимы.