gpt4 book ai didi

Python SNMP 陷阱接收器

转载 作者:行者123 更新时间:2023-12-02 20:32:24 29 4
gpt4 key购买 nike

我在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()

最佳答案

您的发送代码正确地使用库来为您完成所有编码/解码。

您的接收代码没有。即使您将二进制数据重新解释为字符串,您也无法理解它。它是一个 SNMP PDU,其中包含许多您必须提取和解析的有用信息。

正确的做法是让 SNMP 库为您解码它并提供一个很好的逻辑值来表示您收到的内容。 PySNMP 已经具有此功能。 Here's an example.

关于Python SNMP 陷阱接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48275237/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com