转载请注明出处:

  OID(Object Identifier)是一种用于标识和唯一命名管理信息库中的对象的标准方式。给定一个OID,可以确定特定的管理信息库对象,并对其进行操作。

  go语言使用snmp库中的 k-sone/snmpgo 实现相关mib查询的代码如下:

package main

import (
"fmt"
"log"
"net" "github.com/k-sone/snmpgo"
) func main() {
// 创建SNMP会话
session := snmpgo.NewSNMP(goSNMP.Version2c, 5000000, snmpgo.Default)
err := session.Open()
if err != nil {
log.Fatalf("无法打开SNMP会话:%v", err)
}
defer session.Close() // 设置SNMP目标
target := &snmpgo.SNMPTarget{
Address: "localhost",
Port: 161,
Community: "public",
Version: snmpgo.Version2c,
} // 创建SNMP GET请求
pdu := snmpgo.NewPdu(snmpgo.GetRequest)
pdu.AddOid(snmpgo.MustParseOid("1.3.6.1.2.1.55.1.7.1.5")) // 发送SNMP请求
packet, err := pdu.Marshal()
if err != nil {
log.Fatalf("SNMP请求封包失败:%v", err)
}
result, err := session.GetBulk(packet, target)
if err != nil {
log.Fatalf("SNMP GET请求失败:%v", err)
} // 处理SNMP响应
if result.ErrorStatus() != snmpgo.NoError {
log.Fatalf("SNMP响应错误:%s", result.ErrorStatus())
} // 解析SNMP响应
respPdu := result.PduAtIndex(0)
if respPdu == nil {
log.Fatal("未收到SNMP响应")
} // 获取系统启动时间的值
startupTime := respPdu.VariableBindings()[0].Variable.String() fmt.Printf("系统启动时间:%s\n", startupTime)
}

  上述代码中,使用了snmpgo库来进行SNMP通信。首先,创建了一个SNMP会话,并设置SNMP目标的地址、端口和共同体(community)。然后,我们创建了一个GET请求,并将要获取的OID添加到请求中。接下来,发送SNMP请求,并处理响应。如果请求成功,我们从响应中解析出系统启动时间的值并打印出来。

  请注意,在运行此示例之前,确保已经安装了 snmpgo 库(可以通过 go get github.com/k-sone/snmpgo 进行安装)以及有可用的 SNMP 代理服务器。

go使用snmp库查询mib数据的更多相关文章

  1. WebGIS中基于控制点库进行SHP数据坐标转换的一种查询优化策略

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.前言 目前项目中基于控制点库进行SHP数据的坐标转换,流程大致为:遍 ...

  2. SQL Azure (18) 使用External Table实现垮库查询

    <Windows Azure Platform 系列文章目录> 问题 1.我们在进行SQL Server开发的时候,经常会使用垮库查询.但是在默认情况下,使用Azure SQL Datab ...

  3. sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器)

    sqlserver 多库查询 sp_addlinkedserver使用方法(添加链接服务器) 我们日常使用SQL Server数据库时,经常遇到需要在实例Instance01中跨实例访问Instanc ...

  4. sql 跨库查询备忘笔记

    select * from OPENDATASOURCE( 'SQLOLEDB', 'Data Source=远程ip;User ID=sa;Password=密码' ).库名.dbo.表名 inse ...

  5. 【ASH】如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据

    [ASH]如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后 ...

  6. SQL Server跨库复制表数据错误的解决办法

    SQL Server跨库复制表数据的解决办法   跨库复制表数据,有很多种方法,最常见的是写程序来批量导入数据了,但是这种方法并不是最优方法,今天就用到了一个很犀利的方法,可以完美在 Sql Serv ...

  7. ACCESS-如何多数据库查询(跨库查询)

    测试通过:ACCESSselect * from F:\MYk.mdb.tablename说明:1.查询语句2.来原于哪(没有密码是个路径)3.查询的表名 ====================== ...

  8. 项目中通过Sorlj获取索引库中的数据

    在开发项目中通过使用Solr所提供的Solrj(java客户端)获取索引库中的数据,这才是真正对项目起实质性作用的功能,提升平台的检索性能及检索结果的精确性 第一步,引入相关依赖的jar包 第二步,根 ...

  9. Access数据库跨库查询及记录集区分

    医疗设备软件一般都是单机软件,如果是Windows平台,常会选择Access数据库存储结构化数据,因为他轻量,便于部署.然而随着医疗信息化的发展,医生希望对多台单机设备的数据进行管理,采用网络数据库当 ...

  10. EF 跨库查询

    原因:最近公司项目,遇到一个ef跨库查询的问题.(只是跨库,并不是跨服务器哈) 主要我们的一些数据,譬如地址,城市需要查询公共资料库. 但是本身我的程序设计采用的是ef框架的.因此为这事花费了1天时间 ...

随机推荐

  1. Collection 接口及其常用方法

    Collection 接口的特点 Collection接口没有直接实现类,提供了更具体的子接口(如Set和List)的实现.Collection实现类(通常通过其中一个子接口间接实现Collectio ...

  2. 关于DVWA靶场高难度命令执行的代码审计

    需要的环境:dvwa 使用的工具:PHP手册 high难度源代码: <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target ...

  3. Django学习笔记:第二章django的安装和创建应用

    1.安装Django 终端运行 pip install django 查看django是否安装成功 python -m django --version 1.1 安装虚拟环境 在控制台运行 pip i ...

  4. clickhouse 与 zookeeper

    目录 clickhouse 设置中的 zookeeper 配置 参数说明 配置示例 [预发生产] ClickHouse Keeper 四字母命令 clickhouse 设置中的 zookeeper 配 ...

  5. Redis从入门到放弃(2):数据类型

    在Redis中,数据以键值对的形式存储.Redis支持五种主要的数据类型,每种类型都有不同的用途和特性. 本文将介绍Redis的五种数据类型:字符串(string),哈希(hash),列表(list) ...

  6. 2021-7-8 VUE的简易表单提交

    <!DOCTYPE html> <html> <head> <title> </title> <style type="te ...

  7. java读取txt文件解决乱码问题

    说明:由于txt文件有bom和不同的编码方式,导致导入数据时产生乱码,以下代码完美解决乱码问题. 参考他人代码,结合自己的业务加工完成,费了大半天功夫完成,希望对大家有点用处. 废话不多说,直接上代码 ...

  8. 是时候丢掉BeanUtils了

    前言 为了更好的进行开发和维护,我们都会对程序进行分层设计,例如常见的三层,四层,每层各司其职,相互配合.也随着分层,出现了VO,BO,PO,DTO,每层都会处理自己的数据对象,然后向上传递,这就避免 ...

  9. C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章

    今天继续研究C#的WinForm的实例显示效果. 我们上次介绍了Winform窗体的唯一实例运行代码(见博文:基于C#的应用程序单例唯一运行的完美解决方案 - 开源研究系列文章 ).这就有一个问题,程 ...

  10. C# Wke使用例子 (KyozyWke)

    概述 wke是国人大牛BlzFans封装的webkit, 基于chrome浏览器源代码的裁剪版本, 大小只有仅仅10M. 无需依赖其他的扩展库就可以在本地使用谷歌内核快速加载网页. wke是2011年 ...