Python 将MAC转换为aa:bb:cc:dd:11:22
我正在创建一个SNMP程序来列出设备的接口(带有ip、掩码和mac)。我正在使用NetSnmp获取macaddress,但输出如下('\x00PV\xaf\x00v',) 这是SNMP请求:Python 将MAC转换为aa:bb:cc:dd:11:22,python,hex,snmp,net-snmp,Python,Hex,Snmp,Net Snmp,我正在创建一个SNMP程序来列出设备的接口(带有ip、掩码和mac)。我正在使用NetSnmp获取macaddress,但输出如下('\x00PV\xaf\x00v',) 这是SNMP请求: oidmac = netsnmp.Varbind("ifPhysAddress."+i) mac = netsnmp.snmpget( oidmac, Version = 2, DestHost = sys.argv[2],
oidmac = netsnmp.Varbind("ifPhysAddress."+i)
mac = netsnmp.snmpget(
oidmac,
Version = 2,
DestHost = sys.argv[2],
Community = sys.argv[1])
关于代码的信息
=社区字符串sys.argv[1]
=SNMP代理的IPsys.argv[2]
=具有接口ID的变量i
如何将字符串转换为格式为
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)Hellp John!我第一次在ipython中编辑了你的代码(我使用的是python2),它工作正常!然后我把它添加到我的代码中:mac2=“:”.join(x.encode('hex')代表mac中的x)我得到一个错误tho,它是:回溯(最近一次调用):文件“/program.py”,行37,在mac2=“:”.join(x.encode('hex')代表mac中的x)文件“/program.py”,行37,在mac2=“:”.join(x.encode('hex')')代表mac中的x)AttributeError:“NoneType”对象没有属性“encode”@JacobÅkerblom,字符串在迭代时不能有None
。根据打印类型(mac),检查isMy变量mac是元组的类型。