我希望您能帮助我,目标是获得使用pysnmp连接到ap的客户数量,我想我已经接近了,我知道我必须使用可能的pyasn1,但是我得到了一个部分,它给了我以下错误:
( 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.1.1.7_ wc -l“
或
"sudo snmpwalk.py -v 2c -c public 192.168.1.51 1.3.6.1.4.1.14179.2.1.18“我可以得到命令行的客户机数量
发布于 2018-02-07 11:41:26
如果您想用pysnmp复制此Net命令:
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前缀下返回节点(行)数。我认为这反映了与AP相关联的用户数量。
https://stackoverflow.com/questions/48661260
复制相似问题