想问一下怎么判断一个报文是SNMP协议的啊?(如果可以抓包的话)

为什么能从30判断是SNMP报文?只要有30就是吗?
2025-06-01 08:09:31
推荐回答(1个)
回答1:

是的,如果你用wireshark抓包的话,snmp段第一个字节是30,当然不是任何位置是30都表示snmp报文,必须是在报文数据段头部第一个字节是30才表示snmp报文
下面是snmp报文的结构

30 表示snmp
29 snmp消息的长度41字节
02 01 00 表示版本号snmpv1(0)
04 参数类型:OCTSTR(0x04);
06 参数长度:6字节
70 75 62 6c 69 63 public的ascii值
a0 pdutype:Get_Request(0xA0)
1c snmppdu长度28个OCTSTR
02 04 4f 89 表示request id为0x4f89
02 01 00 表示error-state为0
02 01 00 表示error-index为0
30 0e 表示variable-binding是ASN.1的SEQUENCE类型,长度是0x0e(14字节)
30 0c 表示variable-name1 |variable-value1对是ASN.1的SEQUENCE类型;长度是 0X0b (11字节)
06 表示该字段是oid类型
08 oid长度
2b 06 01 02 01 01 表示variable-name1: .1.3.6.1.2.1.1.1
05 00 表示NULL