【发布时间】:2018-06-24 19:21:57
【问题描述】:
我在 Python3 中收到了一个 SNMP 陷阱消息,我得到了一个十六进制数。
如何将其转换为字符串以便查看?
接收数据(十六进制)
b'0E\x02\x01\x01\x04\x06404040\xa78\x02\x04\x00\xf6\x17~\x02\x01\x00\x02\x01\x000*0\x0f\x06\x08+\ x06\x01\x02\x01\x01\x03\x00C\x03\x01k+0\x17\x06\n+\x06\x01\x06\x03\x01\x01\x04\x01\x00\x06\t+\x06\ x01\x06\x03\x01\x01\x05\x01'
这是我的 SNMP 陷阱接收器代码
import socket
import sys
port = 162
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("", port))
while 1:
data, addr = s.recvfrom(4048)
print(data)
这是我的 SNMP 陷阱发件人代码
from pysnmp.hlapi.asyncore import *
snmpEngine = SnmpEngine()
sendNotification(
snmpEngine,
CommunityData('404040'),
UdpTransportTarget(('192.168.0.160', 162)),
ContextData(),
'trap',
NotificationType(ObjectIdentity('SNMPv2-MIB', 'coldStart')),
)
snmpEngine.transportDispatcher.runDispatcher()
【问题讨论】:
-
你不想自己解码。 Pysnmp 已经具有为您执行此操作的功能。例如,请参阅此问题的示例:stackoverflow.com/questions/33752602/listen-traps-with-pysnmp
-
Python标签合适;请保持打开状态。
标签: python snmp pysnmp snmp-trap