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 8Em 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.
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow