MIB的组织结构,如下左图,对于udp来说1.3.6.1.2.1.7,组织如下右图,包括4个标量和1个表格

udp节点在LwIP中的定义如下:

const s32_t udp_ids[5] = { 1, 2, 3, 4, 5 };
struct mib_node* const udp_nodes[5] = {(struct mib_node*)&udp_scalar, (struct mib_node*)&udp_scalar,(struct mib_node*)&udp_scalar, (struct mib_node*)&udp_scalar,(struct mib_node*)&udptable
};
const struct mib_array_node udp = {&noleafs_get_object_def,&noleafs_get_value,&noleafs_set_test,&noleafs_set_value,MIB_NODE_AR,5,udp_ids,udp_nodes
};

SNMPv1的报文格式如下:

版本、PDU类型、请求标识、差错状态、差错索引均为4个字节(这个理解是不对的!!!所有的字段都是TLV格式)

共同体一般为6个字符“public”

/* public (non-static) constants */
/** SNMP v1 == 0 */
const s32_t snmp_version = 0;
/** default SNMP community string */
const char snmp_publiccommunity[7] = "public";

后面的名称、值,不知道该如何写?

比如,如果想获取udp的udpindatagrams变量,那么,该遍历的MIB编码为1.3.6.1.2.1.7.1,那么,SNMP报文中的名称、值该如何填呢?

从net-snmp那本书上看到了一个例子,在lwip上测试了一下可以正常操作。

串口终端发送(串口上跑SLIP协议):SNMP get-request,获取udp的udpindatagrams,1.3.6.1.2.1.7.1.0

C0 45 00 00 45 00 08 00 00 FF 11 00 00 DB DC A8 65 05 DB DC A8 65 0A 07 F8 00 A1 00 31 00 00 30 27 02 01 00 04 06 70 75 62 6C 69 63 A0 1A 02 02 00 BD 02 01 00 02 01 00 30 0E 30 0C 06 08 2B 06 01 02 01 07 01 00 05 00 C0

30 27是序列,02 01 00是整型(type=2)版本号,04 06 70 75 62 6C 69 63是字符型(type=4)public,A0 1A是上下文(type=A0)表示get-request,02 02 00 BD是整型请求标识,后面是差错状态和差错索引,30 0E 30 0C是序列(序列怎么理解,怎么有两个???),06 08 2B 06 01 02 01 07 01 00是Object ID(type=6),前两个1.3需要用1个字节表示,用1*40+3=43表示,最后的05 00是NULL空值。

串口终端返回的:SNMP,get-response,回复udp的udpindatagrams

C0 45 00 00 46 00 01 00 00 FF 11 00 00 DB DC A8 65 0A DB DC A8 65 05 00 A1 07 F8 00 32 00 00 30 28 02 01 00 04 06 70 75 62 6C 69 63 A2 1B 02 02 00 BD 02 01 00 02 01 00 30 0F 30 0D 06 08 2B 06 01 02 01 07 01 00 41 01 03 C0

最后,返回的值是41 01 03,41是Counter类型,03表示udpindatagrams=03

SNMP使用的TLV中type类型如下表:

以太网发送及回复的内容:

参考资料:

http://blog.csdn.net/jiangtaohu123/article/details/7404920

转载于:https://www.cnblogs.com/yanhc/p/7487145.html

SNMP协议交互学习-获取udp的udpindatagrams相关推荐

  1. java snmp协议 获取数据

    最近工作内容涉及到snmp协议相关内容,由于第一次接触,又没有实际的环境测试,写出来的东西自己都不确定能不能用,直到最近有环境后,花了一段时间才搞定. 写下这篇文章,只是给和我之前一样的小白指点一波, ...

  2. TCP与UDP协议初步学习——网络环境中分布式进程通信的基本概念

    TCP与UDP协议初步学习--网络环境中分布式进程通信的基本概念 一.单机系统中进程通信方法 进程和进程通信是操作系统中最基本的概念,首先通过回忆操作系统课程中,关于单击系统中进程和进程通信的问题描述 ...

  3. 网工学习 第十一章 网络管理 网络管理基础 网络管理协议五大标准 SNMP协议 RMON

    目录 第十一章 网络管理 网络管理基础 网络管理协议五大标准 SNMP协议 SNMP协议的操作 SNMPv1 SNMPv2 SNMPv3 管理数据库MIB-2 被管理 对象标识符OID RMON 第十 ...

  4. java 通过snmp协议获取物理机CPU、内存容量及使用率,存储的容量及使用率

    java 用snmp协议获取物理机CPU.内存容量及使用率,存储的容量及使用率,java获取trap告警 一.SNMP简介 1.什么是snmp 二.SNMP获取信息步骤 1.开启SNMP 2.MIB文 ...

  5. 通过snmp协议自动化获取服务器硬件信息-python

    前言 最近有个需求,就是在新机器上架的时候,获取硬件信息,用来核对新采购的服务器是否和购买的配置一致.其中包含cpu.内存,硬盘,Raid卡.网卡等硬件信息.由于新机器可能没有装操作系统,考虑到公司使 ...

  6. windows系统下SNMP协议获取系统内存、CPU实例代码

    系统环境:win10 注:win10及以下windows平台,在控制面板,程序中,添加snmp服务功能. 可参照:https://jingyan.baidu.com/article/3d69c5515 ...

  7. snmp协议与snmp++

    0.学习及引用 SNMP++库-[搜索SNMP++] SNMP++ 00-开发准备篇 SNMP原理与实战详解 <计算机网络管理原理与实现> dog250在此文中提到了snmp SNMP协议 ...

  8. SNMP协议的了解与简单的抓包分析

    文章目录 前言 一.SNMP是什么? 二.SNMP解读 1.实现结构 2.操作命令 3.SNMP报文 4 SNMP报文格式 三.SNMP抓包分析 1.SNMP体验 2.SNMP抓包分析 总结 前言 本 ...

  9. Java21-day12【网络编程(网络编程入门(ip地址、端口、协议、InetAddress)、UDP通信程序、TCP通信程序)】

    视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...

最新文章

  1. 数据备份_天津数据备份工具多少钱
  2. 谷歌发安全警告:社交网络威胁用户隐私
  3. VNC over reverse SSH
  4. 以下关于程序设计语言的叙述中,不正确的是()【最全!最详细解释!!】
  5. SAP Commerce Cloud CMS page 和 page template 的概念
  6. C#中如何创建文件夹
  7. 特征计算 - 遍历求值提速 6 万倍 lambda...if...else(if...else...) +map() 对比 iterrows() - Python代码
  8. axis2 默认端口_基于 AXIS2/C 的 C 语言库实现对提供 REST API 的系统进行数据访问...
  9. PIE SDK栅格生成等值线、面
  10. 基于NSString处理文件的高级类
  11. 不用for循环快速合并txt文本文件
  12. Xshell6 plus绿色永久版_SSH连接工具_站长必备工具集
  13. 什么样的会员管理才叫有效果的会员运营方案?
  14. xfs文件系统修复-xfs_repair
  15. 岁月的剪影【五月世界末日】
  16. (2)ubuntu 中安装epics 的额外插件---asyn 以及 streamdevice
  17. 1.jQuery入门
  18. netty系列之:请netty再爱UDT一次
  19. 机器学习——XGboost模型
  20. 【Python全栈100天学习笔记】Day37MySQL详解(sql语句基本操作含索引、视图、存储过程)

热门文章

  1. 具有多个单元格类型的iOS UITableView
  2. 基于Spring Security角色的访问授权示例
  3. Effective Objective-C 2.0 Tips 总结 Chapter 3 Chapter 4
  4. day4-软件目录开发规范
  5. 多线程 之 生产者与消费者
  6. Asp.net SQL注入实例分享
  7. Failed to execute goal com.github.wvengen:proguard-maven-plugin:2.0.10:proguard (default) on project
  8. Leetcode 30.串联所有单词的子串
  9. Matlab产生随机数、随机矩阵及正态分布矩阵
  10. python调用指定浏览器打开网页