net-snmp agent开发


1、
系统环境:
opensuse 11.3

2、
需要安装的net-snmp包:
net-snmp
net-snmp-devel
perl-SNMP
snmp-mibs
libsnmp20
可以使用 zypper 安装来解决包依赖问题(zypper install net-snmp 和 net-snmp-devel)。

3、
写一个MIB库:(参照ASN.1抽象标记语言生成SMI、MIB)
 MyMIB DEFINITIONS::=BEGIN

      
 IMPORTS     

             
     enterprises,OBJECT-TYPE,Integer32,TimeTicks

                    
      FROM SNMPv2-SMI
.....

4、编译
MIB库存放路径:/usr/share/snmp/mibs/mymib.mib
配置文件路径: /etc/snmp/mymib.conf
指令:
env MIBS="+/usr/share/snmp/mibs/mymib.mib" mib2c mymib
利用向导生成.c文件
  步骤如下: (选2)Net-SNMP style code --> (选1) destroyed independently of the SNMP agent -->
      (选2)mib2c -c mib2c.iterate_access.conf mymib -->看到提示:
**********************************************************************
NOTE:  The only files you MUST modify should be the following:
  mymib_access.c
  mymib_access.h
  mymib_checkfns_local.h
  mymib_checkfns_local.c
**********************************************************************
则生成成功。

5、修改部分代码:
修改mymib.c mymibIfTable_handler函数

修改点1:
138         case MODE_GET:
       // 不采用链表方式,可以注释掉这里。
139            /* data_context =  netsnmp_extract_iterator_context(request);
140             if (data_context == NULL) {
141                 netsnmp_set_request_error(reqinfo, request,
142                                           SNMP_NOSUCHINSTANCE);
143                 continue;
144             }*/
145             break;

修改点2:
switch(reqinfo->mode) {
161             case MODE_GET:
162                 switch(table_info->colnum) {
163                     case COLUMN_IFINDEX:
164                             {
       // 这里就是查询返回值的地方:ge

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值