SNMP TRAP

SNMP TRAP今天写了一个关于snmp发trap命令的简单代码,仅供参考 #include#include#include#include#include#include#include#include#include#include”snmptrap.h”intsnmptrap(trap_msg_s*p_data){ oid

今天写了一个关于snmp发trap命令的简单代码,仅供参考 

#include <stdlib.h>
#include <stdio.h>
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/types.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/agent_trap.h>
#include <net-snmp/agent/snmp_agent.h>
#include <net-snmp/agent/agent_callbacks.h>
#include <string.h>

#include”snmptrap.h”

int snmptrap(trap_msg_s *p_data)
{

 oid      id_oid[MAX_OID_LEN];
 size_t      id_len = MAX_OID_LEN;

 struct snmp_session session;
 snmp_sess_init(&session);

 session.version   = SNMP_VERSION_2c;
 session.peername   = p_data->ip_address;
 session.community   = (unsigned char*)”dcpublic”;
 session.community_len  = strlen((char*)session.community);
 session.retries   = p_data->retries;
 session.timeout   = p_data->timeout;
 session.sessid   = p_data->sessid;

  struct snmp_session *ss;
  ss = snmp_open(&session);
  if (ss == NULL)
  {

   return -1;
  }

  struct snmp_pdu *pdu;
  pdu = snmp_pdu_create(SNMP_MSG_TRAP2);

 if(!snmp_parse_oid(p_data->point_oid, id_oid, &id_len))
 {

  snmp_log(LOG_ERR, “snmp_parse_oid error!\n”);
  return -1;
 }

 int status = snmp_add_var(pdu, id_oid,id_len,p_data->types,p_data->values);
 printf(“status = %d\n”,status);
 status = snmp_send(ss,pdu);
 printf(“status = %d\n”,status);
 snmp_close(ss);
 return 0;
}

 

 

 

今天的文章SNMP TRAP分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6773.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注