Wing писал(а):
Можно ли как-нибуть по SNMP получить medium type комбо-порта, то бишь, что воткнуто - медь или стекло? В частности интересуют почти все акцесс-свитчи: 3526, 3028, 3200, 3010
С небольшим опозданием, но отвечу. За это отвечает
swL2PortInformationLinkStatus. Для 3200-28 это выглядит так:
Цитата:
# snmpget -v2c -c public 192.168.13.99 1.3.6.1.4.1.171.11.113.1.3.2.2.1.1.4.25.100
SNMPv2-SMI::enterprises.171.11.113.1.3.2.2.1.1.4.25.100 = INTEGER: 3
# snmpget -v2c -c public 192.168.13.99 1.3.6.1.4.1.171.11.113.1.3.2.2.1.1.4.25.101
SNMPv2-SMI::enterprises.171.11.113.1.3.2.2.1.1.4.25.101 = INTEGER: 2
- 100 медь, 101 - стекло. Значения могут разниться для: для 3526 это будет .1 и .2 соответственно.
- 25 - номер комбо-порта.
- Ответы: 3 - нет линка, 2 - есть линк
- Соответственно, если линк в дауне для обоих medium type'ов - оба запроса вернут 3
При попытке запросить, например, 101 на не-комбо порт вернётся ошибка:
Код:
# snmpget -v2c -c public 192.168.13.99 1.3.6.1.4.1.171.11.113.1.3.2.2.1.1.4.1.101
SNMPv2-SMI::enterprises.171.11.113.1.3.2.2.1.1.4.1.101 = No Such Instance currently exists at this OID
Моя "обёртка" выглядит так:
Код:
/**
* Retrieve what medium type is currently active
* Returns NULL if used NOT on a combo-port
* Returns FALSE if link is down
*
* @return mixed
* bool false: link down
* int 0: copper
* int 1: fiber
*/
public function getActiveMediumType() {
if( self::isCombo()===true ) {
$result = DlinkCore::snmpQueryPort(self::$device['snmp']['swL2PortInformationLinkStatus']);
foreach( $result as $medium=>$link ) {
if( $link == '2' ) {
return $medium;
}
}
return false;
}
}