gpt4 book ai didi

python - 我如何从 Ap cisco 获取客户数量并将其保存在变量中?

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:47 31 4
gpt4 key购买 nike

我希望你能帮助我,目标是使用 pysnmp 获取已连接到 ap 的客户端数量,我想我很接近,我知道我可能必须使用 pyasn1,但我得到了一个给我以下错误的部分:

('-------->', DisplayString('', subtypeSpec=ConstraintsIntersection(ConstraintsIntersection(ConstraintsIntersection(ConstraintsIntersection(),ValueSizeConstraint(0, 255)),ValueSizeConstraint(0, 255))))

我的代码是这样的:

from pysnmp.hlapi import *
from pysnmp.proto import rfc1905

setcommunity = "public"
host = "192.168.1.51"
oid = '1.3.6.1.4.1.1.4.1.14179.2.1.1.1.38'
ssid = "Cisco1852i"
snmp_engine = SnmpEngine()

#this function gets the interface status of the cisco Switch

def show_apClients():
clients = nextCmd (snmp_engine,
CommunityData(setcommunity),
UdpTransportTarget((host, 161)),
ContextData(),

ObjectType(ObjectIdentity('SNMPv2-SMI', 'mib-2', '1.3.6.1.4.1.14179.2.1.1.1.38')))
errorIndication, errorStatus, errorIndex, varBinds = next(clients)
numberClients = varBinds[0][1]
print("----------->", numberClients)
return numberClients

nClients = show_apClients()

print(".....------->", nClients)

我觉得OID、MIB等都没有问题,因为我通过命令:

sudo snmpwalk.py -v 2c -c public 192.168.1.51 1.3.6.1.4.1.14179.2.1.4.1.7 | wc -l

sudo snmpwalk.py -v 2c -c public 192.168.1.51 1.3.6.1.4.1.14179.2.1.1.18”我可以通过命令行获取客户端数量

最佳答案

如果你想用 pysnmp 复制这个 Net-SNMP 命令:

snmpwalk.py -v 2c -c public 192.168.1.51 1.3.6.1.4.1.14179.2.1.4.1.7 | wc -l

那么我想你应该这样做:

def show_apClients():
clients = nextCmd(
snmp_engine,
CommunityData(setcommunity),
UdpTransportTarget((host, 161)),
ContextData(),
ObjectType(ObjectIdentity('1.3.6.1.4.1.14179.2.1.4.1.7')),
lexicographicMode=True
)

# this iterates over generator
numberClients = len(tuple(clients))
print("----------->", numberClients)
return numberClients

想法是让 pysnmp 遍历 1.3.6.1.4.1.14179.2.1.4.1.7 分支并返回该 OID 前缀下的节点(行)数。我假设这反射(reflect)了与 AP 关联的用户数量。

关于python - 我如何从 Ap cisco 获取客户数量并将其保存在变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48661260/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com