我正在创建一个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地址?
答案 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)