Como habilitar/desabilitar portas PoE usando pySNMP no Netgear GS710TUP

Em nosso post anterior Como usar pySNMP para consultar informações SNMPv3 do Netgear GS710TUP mostramos como conectar pySNMP ao Netgear GS710TUP para consultar informações simples.

O seguinte script de exemplo é o equivalente pySNMP a Como habilitar/desabilitar energia de porta PoE usando SNMPv3 no Netgear GS710TUP : Ele define o OID relevante em 1.3.6.1.2.1.105.1.1.1.3 (pethPsePortAdminEnable).

Os seguintes OIDs para portas individuais estão disponíveis para o GS710TUP que tem 8 portas PoE:

poe_oids.txt
1.3.6.1.2.1.105.1.1.1.3.1.1 # Port 1
1.3.6.1.2.1.105.1.1.1.3.1.2 # Port 2
1.3.6.1.2.1.105.1.1.1.3.1.3 # Port 3
1.3.6.1.2.1.105.1.1.1.3.1.4 # Port 4
1.3.6.1.2.1.105.1.1.1.3.1.5 # Port 5
1.3.6.1.2.1.105.1.1.1.3.1.6 # Port 6
1.3.6.1.2.1.105.1.1.1.3.1.7 # Port 7
1.3.6.1.2.1.105.1.1.1.3.1.8 # Port 8

Em nosso exemplo, vamos habilitar a energia na porta 1:

pysnmp_set_port.py
import pysnmp.hlapi as snmp

portNumber = 1

iterator = snmp.setCmd(
    snmp.SnmpEngine(),
    snmp.UsmUserData('admin', 'SWITCH_ADMIN_PASSWORD',
                     authProtocol=snmp.usmHMACSHAAuthProtocol,
                     privProtocol=snmp.usmNoPrivProtocol),
    snmp.UdpTransportTarget(('SWITCH_IP_ADDRESS', 161)),
    snmp.ContextData(),
    snmp.ObjectType(
        snmp.ObjectIdentity(f'1.3.6.1.2.1.105.1.1.1.3.1.{portNumber}'),
        snmp.Integer(1))
)

errorIndication, errorStatus, errorIndex, varBinds = next(iterator)

if errorIndication:
    print(errorIndication)
elif errorStatus:
    idx = int(errorIndex) - 1
    location = errorIndex and varBinds[idx][0] or '?'
    print(f"{errorStatus.prettyPrint()} at {location}")
else: # Success
    for varBind in varBinds:
        print(' = '.join([x.prettyPrint() for x in varBind]))

Para desabilitar energia na porta 1, substitua

snmp_integer_enable.py
snmp.Integer(1)

por

snmp_integer_disable.py
snmp.Integer(2)

Note que um valor 1 representa booleano true (como em habilitar saída PoE) enquanto 2 representa booleano false, desabilitando saída PoE na porta.


Check out similar posts by category: Redes PoE Python SNMP