PoE-Ports mit pySNMP auf dem Netgear GS710TUP aktivieren/deaktivieren
In unserem vorherigen Beitrag pySNMP verwenden um SNMPv3-Informationen vom Netgear GS710TUP abzufragen haben wir gezeigt, wie pySNMP mit dem Netgear GS710TUP verbunden wird, um einfache Informationen abzufragen.
Das folgende Beispielskript ist das pySNMP-Äquivalent zu PoE-Port-Strom mit SNMPv3 auf dem Netgear GS710TUP aktivieren/deaktivieren: Es setzt die relevante OID in 1.3.6.1.2.1.105.1.1.1.3 (pethPsePortAdminEnable).
Die folgenden OIDs für einzelne Ports sind für den GS710TUP mit 8 PoE-Ports verfügbar:
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 8In unserem Beispiel aktivieren wir den Strom auf Port 1:
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]))Um Strom auf Port 1 zu deaktivieren, ersetzen
snmp.Integer(1)durch
snmp.Integer(2)Beachten, dass der Wert 1 den booleschen Wert true repräsentiert (wie in PoE-Ausgang aktivieren) während 2 den booleschen Wert false repräsentiert, was den PoE-Ausgang auf dem Port deaktiviert.