Cuando se utiliza easysnmp
el dispositivo de lectura, a veces aparecen caracteres confusos en el análisis de datos. Por ejemplo, si desea obtener VRID
el número del dispositivo, encontrará los siguientes caracteres confusos:
# !/usr/bin/env python3
# -*- coding: UTF-8 -*-
from easysnmp import snmp_walk
def get_vrid():
vrid_data = snmp_walk(
oids='1.3.6.1.2.1.68.1.3.1.2',
hostname='you ip address',
community='you device community',
version=2
)
for vrid in vrid_data:
print(f'vrid: {vrid} \t value:{vrid.value}')
La solución también es muy simple, simplemente snmp
agregue use_sprint_value=True
el parámetro al configurar.
# !/usr/bin/env python3
# -*- coding: UTF-8 -*-
from easysnmp import snmp_walk
def get_vrid():
vrid_data = snmp_walk(
oids='1.3.6.1.2.1.68.1.3.1.2',
hostname='you ip address',
community='you device community',
version=2,
use_sprint_value=True # 设置 use_sprint_value 为 True
)
for vrid in vrid_data:
print(f'vrid: {vrid} \t value:{vrid.value}')
Sin embargo, debe tenerse en cuenta que si use_sprint_value
se establece en True
, snmp
algunos tipos de datos pueden devolverse en un formato no estándar y es posible que sprint_value
la biblioteca de funciones get
y getnext
el valor de retorno del método no formatee los datos.