当我尝试通过snmp从设备输出学习到的macs时,输出不符合预期。
我尝试了几件事,但碰壁了
from snimpy.manager import Manager as M, load, snmp
host = M(host=modem, community="public", version=2, timeout=1, retries=2)
for i in host.dot1dTpFdbAddress:
try:
if 'learned' in str(host.dot1dTpFdbStatus[i]):
maclearn.append(host.dot1dTpFdbAddress[i])
port.append(host.dot1dTpFdbPort[i])
status.append(host.dot1dTpFdbStatus[i])
print("Mac:" + str(maclearn[o]) + " Port:" + str(port[o]) + " Status:" + str(status[o]))
o = o + 1
except snmp.SNMPException as detail:
print ("Modem " + modem + " : " + str(detail))
此输出 这是调制解调器学习到的Mac:
Mac:b'\ x00 \ x0c)\ xf7 \ xb7s'端口:1状态:已学习(3)
但是,如果我在调制解调器中散步,macs会再回来这个
BRIDGE-MIB :: dot1dTpFdbAddress。'..).. s'=十六进制字符串:00 0C 29 F7 B7 73
因此,我试图使内容更具可读性和完整性,例如真实的mac地址,呵呵。