我在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\x01k0\x17\x06\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已经有了这个设施。这里有一个例子。
我想接收snmp陷阱,我在snmp4j上获得了它,但现在我正在使用westhawk snmp堆栈库来实现陷阱接收器模块。我使用这个库示例来接收陷阱,但这段代码以rawPdu的形式接收陷阱,当我编辑代码时,我应该怎么做?这是我的代码:
while (<STDIN>) 一定要小心这点。如果你不知怎么回事地得到了假值(如:空行),你的文件可能 停止处理了。假如你在处理文件读取(除非修改了 $/),这种事一般不会发生, 但却可能发生。 你更喜欢这样运行: while (readdir(DIR)) { 假设你有文件名为 0 的话,那么程序将停止,且不会继续处理文件。 更合适的 while 循环看起来像这样: while ( defin
如何使用C或C和net snmp模块接收陷阱。我需要示例代码,但示例位于http://www.net-snmp.org/使用系统调用,但不要使用API方法。
通常,Python 旨在成为一门简洁一致的语言,避免发生意外。然而,有些情况可能会给新手们造成困惑。 在这些情况中,有一些虽是有意为之,但还是有潜在风险。还有一些则可以说是语言设计缺陷了。总之,下面列出的这些情况都是些乍一看很不好理解的行为,不过一旦您了解了这些奇怪行为背后的机理,也就基本上能理解了。 可变默认参数 似乎每个 Python 新手都会感到惊讶的一点是 Python 在函数定义中对待可
问题内容: 我需要将基于GCC 4.7的libstdc 的,基于Ubuntu 12.10构建的C 应用程序部署到运行Ubuntu 10.04的系统,该系统随附了相当老的libstdc ++版本。 目前,我正在按照此博客文章的建议进行编译:静态链接libstdc ++ 。作者警告不要在静态编译libstdc 时使用任何动态加载的C 代码,这是我尚未检查过的事情。到目前为止,一切似乎都进展顺利:我可以
在绝大多数情况下, React都是清晰直观的. 但是也不乏有一些小陷阱, 不注意的话有时候也会给你”意外的惊喜”. 下面我们就来介绍一下这些小陷阱 参考资料 React Gotchas Top 5 React Gotchas