Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pysnmp-mac到人类可读_Python_Python 3.x_Pysnmp - Fatal编程技术网

Python pysnmp-mac到人类可读

Python pysnmp-mac到人类可读,python,python-3.x,pysnmp,Python,Python 3.x,Pysnmp,我正在使用pysnmp从ipNetToMediaPhysAddress获取IP和mac地址列表 这是没有问题的工作。 但是,我在将mac地址转换为人类可读的地址时遇到了一个问题。 SNMP代码导致mac显示为 0x05056bdafc 我想知道如何将其转换为人类可读的mac地址。 据我了解,根据此处的详细信息,某些0缺失- 是否有一些代码或方法使用pysnmp将其转换为人类可读的 为您的帮助干杯您可以使用netaddr软件包。如果您正在使用Ubuntu/Debian,您可以通过以下方式轻松安装

我正在使用pysnmp从ipNetToMediaPhysAddress获取IP和mac地址列表 这是没有问题的工作。 但是,我在将mac地址转换为人类可读的地址时遇到了一个问题。 SNMP代码导致mac显示为

0x05056bdafc
我想知道如何将其转换为人类可读的mac地址。 据我了解,根据此处的详细信息,某些0缺失-

是否有一些代码或方法使用pysnmp将其转换为人类可读的


为您的帮助干杯

您可以使用
netaddr
软件包。如果您正在使用Ubuntu/Debian,您可以通过以下方式轻松安装:

# apt-get install python-netaddr
或者,您可以在virtualenv或Python3 venv中使用
pip
安装它:

$ source myenvironment/bin/activate
$ pip install netaddr
然后你可以试试这个:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from netaddr import *
>>> mac = EUI(0x05056bdafc)
>>> 
>>> print mac
00-05-05-6B-DA-FC
>>> 
或者使用Python 3:

$ python
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> from netaddr import * 
>>> 
>>> 
>>> mac = EUI(0x05056bdafc)
>>> 
>>> print (mac)
00-05-05-6B-DA-FC
>>>
>>> mac.dialect = mac_unix
>>> 
>>> print (mac)
0:5:5:6b:da:fc
你可以找到更多的例子


希望这有帮助。祝你好运

您可以使用
netaddr
软件包。如果您正在使用Ubuntu/Debian,您可以通过以下方式轻松安装:

# apt-get install python-netaddr
或者,您可以在virtualenv或Python3 venv中使用
pip
安装它:

$ source myenvironment/bin/activate
$ pip install netaddr
然后你可以试试这个:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from netaddr import *
>>> mac = EUI(0x05056bdafc)
>>> 
>>> print mac
00-05-05-6B-DA-FC
>>> 
或者使用Python 3:

$ python
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> from netaddr import * 
>>> 
>>> 
>>> mac = EUI(0x05056bdafc)
>>> 
>>> print (mac)
00-05-05-6B-DA-FC
>>>
>>> mac.dialect = mac_unix
>>> 
>>> print (mac)
0:5:5:6b:da:fc
你可以找到更多的例子


希望这有帮助。祝你好运

您可以使用
netaddr
软件包。如果您正在使用Ubuntu/Debian,您可以通过以下方式轻松安装:

# apt-get install python-netaddr
或者,您可以在virtualenv或Python3 venv中使用
pip
安装它:

$ source myenvironment/bin/activate
$ pip install netaddr
然后你可以试试这个:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from netaddr import *
>>> mac = EUI(0x05056bdafc)
>>> 
>>> print mac
00-05-05-6B-DA-FC
>>> 
或者使用Python 3:

$ python
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> from netaddr import * 
>>> 
>>> 
>>> mac = EUI(0x05056bdafc)
>>> 
>>> print (mac)
00-05-05-6B-DA-FC
>>>
>>> mac.dialect = mac_unix
>>> 
>>> print (mac)
0:5:5:6b:da:fc
你可以找到更多的例子


希望这有帮助。祝你好运

您可以使用
netaddr
软件包。如果您正在使用Ubuntu/Debian,您可以通过以下方式轻松安装:

# apt-get install python-netaddr
或者,您可以在virtualenv或Python3 venv中使用
pip
安装它:

$ source myenvironment/bin/activate
$ pip install netaddr
然后你可以试试这个:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from netaddr import *
>>> mac = EUI(0x05056bdafc)
>>> 
>>> print mac
00-05-05-6B-DA-FC
>>> 
或者使用Python 3:

$ python
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> from netaddr import * 
>>> 
>>> 
>>> mac = EUI(0x05056bdafc)
>>> 
>>> print (mac)
00-05-05-6B-DA-FC
>>>
>>> mac.dialect = mac_unix
>>> 
>>> print (mac)
0:5:5:6b:da:fc
你可以找到更多的例子


希望这有帮助。祝你好运

SNMP的方法是使用MIB将所有接收到的值解析为人性化的形式。其中的lookupValues=True标志起到了作用。但是,您首先必须:A)将传统MIB及其所依赖的所有其他MIB转换为pysnmp格式,B)将pysnmp MIB加载到基于pysnmp的应用程序(通过MibVariable.loadMibs())

或者,如果您知道其值为MAC的确切OID,则以下代码可能会有所帮助:

>>> from pysnmp.smi import builder
>>> mibBuilder = builder.MibBuilder()
>>> MacAddress, = mibBuilder.importSymbols('SNMPv2-TC', 'MacAddress')
>>> macAddress = MacAddress(hexValue='05056bdafc'.zfill(12))
>>> macAddress.prettyPrint()
'00:05:05:6b:da:fc'
或者,也可以仅用Python完成:

>>> mac = '05056bdafc'.zfill(12)
>>> ':'.join([ mac[i:i+2] for i in range(0, 12, 2) ])
'00:05:05:6b:da:fc'

SNMP的方法是使用MIB将所有接收到的值解析为人性化的形式。其中的lookupValues=True标志起到了作用。但是,您首先必须:A)将传统MIB及其所依赖的所有其他MIB转换为pysnmp格式,B)将pysnmp MIB加载到基于pysnmp的应用程序(通过MibVariable.loadMibs())

或者,如果您知道其值为MAC的确切OID,则以下代码可能会有所帮助:

>>> from pysnmp.smi import builder
>>> mibBuilder = builder.MibBuilder()
>>> MacAddress, = mibBuilder.importSymbols('SNMPv2-TC', 'MacAddress')
>>> macAddress = MacAddress(hexValue='05056bdafc'.zfill(12))
>>> macAddress.prettyPrint()
'00:05:05:6b:da:fc'
或者,也可以仅用Python完成:

>>> mac = '05056bdafc'.zfill(12)
>>> ':'.join([ mac[i:i+2] for i in range(0, 12, 2) ])
'00:05:05:6b:da:fc'

SNMP的方法是使用MIB将所有接收到的值解析为人性化的形式。其中的lookupValues=True标志起到了作用。但是,您首先必须:A)将传统MIB及其所依赖的所有其他MIB转换为pysnmp格式,B)将pysnmp MIB加载到基于pysnmp的应用程序(通过MibVariable.loadMibs())

或者,如果您知道其值为MAC的确切OID,则以下代码可能会有所帮助:

>>> from pysnmp.smi import builder
>>> mibBuilder = builder.MibBuilder()
>>> MacAddress, = mibBuilder.importSymbols('SNMPv2-TC', 'MacAddress')
>>> macAddress = MacAddress(hexValue='05056bdafc'.zfill(12))
>>> macAddress.prettyPrint()
'00:05:05:6b:da:fc'
或者,也可以仅用Python完成:

>>> mac = '05056bdafc'.zfill(12)
>>> ':'.join([ mac[i:i+2] for i in range(0, 12, 2) ])
'00:05:05:6b:da:fc'

SNMP的方法是使用MIB将所有接收到的值解析为人性化的形式。其中的lookupValues=True标志起到了作用。但是,您首先必须:A)将传统MIB及其所依赖的所有其他MIB转换为pysnmp格式,B)将pysnmp MIB加载到基于pysnmp的应用程序(通过MibVariable.loadMibs())

或者,如果您知道其值为MAC的确切OID,则以下代码可能会有所帮助:

>>> from pysnmp.smi import builder
>>> mibBuilder = builder.MibBuilder()
>>> MacAddress, = mibBuilder.importSymbols('SNMPv2-TC', 'MacAddress')
>>> macAddress = MacAddress(hexValue='05056bdafc'.zfill(12))
>>> macAddress.prettyPrint()
'00:05:05:6b:da:fc'
或者,也可以仅用Python完成:

>>> mac = '05056bdafc'.zfill(12)
>>> ':'.join([ mac[i:i+2] for i in range(0, 12, 2) ])
'00:05:05:6b:da:fc'

谢谢你的帮助。我犯了一个错误,把十六进制地址放在引号里,这就是为什么我第一次尝试时它不起作用。谢谢你的帮助。谢谢你的帮助。我犯了一个错误,把十六进制地址放在引号里,这就是为什么我第一次尝试时它不起作用。谢谢你的帮助。谢谢你的帮助。我犯了一个错误,把十六进制地址放在引号里,这就是为什么我第一次尝试时它不起作用。谢谢你的帮助。谢谢你的帮助。我犯了一个错误,把十六进制地址放在引号里,这就是为什么我第一次尝试时它不起作用。谢谢你的帮助。