如何输出snmp十六进制字符串

2024-05-16 04:03:14 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图通过snmp从设备输出学习到的MAC时,输出结果与预期不符

我试了几件事,但都失败了

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)

但是如果我在调制解调器里走一走,Mac电脑就会在今天晚上回来

BRIDGE-MIB::dot1dTpFdbAddress'..s'=十六进制字符串:00 0C 29 F7 B7 73

所以我试图得到一些更具可读性和完整性的东西,比如一个真正的mac地址,呵呵


Tags: inhostportmacasstatussnmpprint