将MAC转换为aa:bb:cc:dd:11:22

时间:2015-03-13 10:35:37

标签: python hex snmp net-snmp

我正在创建一个SNMP程序来列出设备的接口(带有ip,mask和mac)。我使用NetSnmp来获取macaddress,但输出看起来像这样(' \ x00PV \ xaf \ x00v',)

这是SNMP请求:

    oidmac = netsnmp.Varbind("ifPhysAddress."+i)

    mac = netsnmp.snmpget(
        oidmac, 
        Version = 2, 
        DestHost = sys.argv[2], 
        Community = sys.argv[1])

有关代码的信息......

  • sys.argv[1] =社区字符串
  • sys.argv[2] = SNMP代理的IP
  • i =具有接口ID的变量。

如何将字符串转换为格式为aa:bb:cc:dd:11:22的MAC地址?

1 个答案:

答案 0 :(得分:0)

在Python2中,它非常简单

>>> ":".join(x.encode('hex') for x in '\x00PV\xaf\x00v')
'00:50:56:af:00:76'

对于Python3,你可以试试这样的东西

>>> "{:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}".format(*b'\x00PV\xaf\x00v')
'00:50:56:af:00:76'

如果您需要大写十六进制代码

,请使用:02X(大写X)