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

Convert MAC to aa:bb:cc:dd:11:22

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

这是 SNMP 请求:

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

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

关于代码的信息...

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

在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)