LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 545|回复: 1

再一个问题,有没有人用过NET—SNMP?

[复制链接]
发表于 2005-3-26 15:35:42 | 显示全部楼层 |阅读模式
有没有人在NET—SNMP上搞过开发?
我想寻求帮助!!
 楼主| 发表于 2005-3-26 15:44:36 | 显示全部楼层
先贴一个程序,最简单的,取自己的sysLocation.0,
大家看看错在哪里?

  1. main(int argc, char * argv[])
  2. {
  3.         struct snmp_session session, *ss;
  4.         struct snmp_pdu *request, *response;
  5.         oid myoid[MAX_OID_LEN];
  6.         size_t myoid_len = MAX_OID_LEN;
  7.         struct variable_list *vars;
  8.         int status;
  9.         init_snmp("snmpapp1");
  10.         snmp_sess_init( &session );
  11.         session.version = SNMP_VERSION_1;
  12.         session.peername = "localhost";
  13.         session.community = "public";
  14.         session.community_len = strlen(session.community);
  15.         ss = snmp_open(&session);
  16.         request = snmp_pdu_create(SNMP_MSG_GET);
  17.         read_objid("SNMPv2-MIB::sysName.0", myoid, &myoid_len);

  18.         printf("myoid=");
  19.         for (status=0;status<myoid_len;status=status+1)
  20.                 printf(".%d",myoid[status]);
  21.         printf("\n");
  22. //到这里一切正常

  23.         snmp_add_null_var(request, myoid, myoid_len);
  24.        
  25.         status = snmp_synch_response(ss, request, &response); //问题出在这里
  26.         if (status == STAT_SUCCESS && response->errstat == SNMP_ERR_NOERROR) //这里返回的status是0
  27.         {
  28.                 printf("start to work...\n");

  29.                 for(vars = response->variables; vars; vars = vars->next_variable)
  30.                                           print_variable(vars->name, vars->name_length, vars);
  31.         }
  32.         else
  33.         {
  34.                 if (status == STAT_SUCCESS)
  35.                                 fprintf(stderr, "Error in packet\nReason: %s\n",
  36.                                                                 snmp_errstring(response->errstat));
  37.                 else
  38.                                 snmp_sess_perror("snmpget", ss);
  39.         }
  40.         if (response)
  41.                 snmp_free_pdu(response);
  42.         snmp_close(ss);
  43.         return (0);
  44. }

复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表