将 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])
关于代码的信息...
sys.argv[1]
= 社区字符串
sys.argv[2]
= SNMP 代理的 IP
i
= 带有接口 ID 的变量。
如何将字符串转换为格式为 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)
我正在创建一个 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])
关于代码的信息...
sys.argv[1]
= 社区字符串sys.argv[2]
= SNMP 代理的 IPi
= 带有接口 ID 的变量。
如何将字符串转换为格式为 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)