今天写了一个关于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