当前位置:首页 » 操作系统 » netsnmp源码

netsnmp源码

发布时间: 2022-02-24 14:48:36

A. 如何用net snmp开发snmp客户端

Linux下net-snmp的安装提供的net-snmp安装包中有以下目录运行install脚本执行安装,但不建立用户运行install_cm脚本执行安装并建立cm用户运行install_vg脚本执行安装并建立vg用户用户也可以用命令:net-snmp-config --create-snmpv3-user -a MD5 -A $snmp_auth -x DES -X $snmp_priv $snmp_usr$snmp_auth 是认证密码,密码必须大于8位$snmp_priv是加密密码,密码必须大于8位$snmp_usr是将要建立的用户名 安装完以后自动启动可以运行 tools/目录下的snmpwalk命令来检查是否安装成功./snmpwalk -v 3 -l authPriv -u cm -aMD5 -A password -xDES -X password 127.0.0.1 Windows下snmp协议的安装(windows2003,windows xp)控制面板-》添加删除程序-》添加组件-》管理和监视工具点详细信息,勾选“简单网络管理协议”安装过程中会提示插入系统盘安装完成后,选择管理工具-》服务在右边的列表中选中“SNMP service”, 右键-》属性里面有一个安全页面,可以自己添加一个团体,也可以用默认的“public”团体。下面选择“接受任意主机的snmp数据包”,或者选择“接受指定主机的snmp数据包”,填入主机的ip地址或主机名。

B. net-snmp代理(snmpd)扩展开发:

其实get和set对应的调用函数已经挂载好了,只需要修改对应的函数实现,就可以达到你需要的结果。不过需要在configure文件中添加--with-mib-moles="XXXX"这样的语句,并且重新configure一遍,才能将新添加的模块编译进去。你问的比较宽泛,我回答的可能也不是很清楚,可以追问。

C. 新人求助windows下netsnmp怎么连接python

由于需要练手,准备将nagios的bash shell/perl监控脚本改用python写,而监控机上yum安装的net-snmp默认没有启用python模块,这里重新编译安装一个。

需要准备的安装包包括:

setuptools-0.6c11-py2.4.egg //提供easy_install指令用来直接在线安装python模块,类似于perl的 cpan install;

net-snmp-5.7.2.tar.gz //net-snmp的源码包。

先安装setuptools-0.6c11-py2.4.egg,否则net-snmp编译安装无法通过。

#chmod 755 setuptools-0.6c11-py2.4.egg

#./setuptools-0.6c11-py2.4.egg

接着,安装net-snmp

#tar -zxvf net-snmp-5.7.2.tar.gz

#cd net-snmp-5.7.2

#./configure --prefix=/usr/local/netsnmp --with-python-moles

#make

#make install

#cd python

#python setup.py build

#python setup.py test

出现以下错误:

ImportError: libnetsnmp.so.30: cannot open shared object file: No such file or directory

由于net-snmp是编译安装,且安装路径为/usr/local/netsnmp,以至于找不到相应模块,解决方法:

#echo "/usr/local/netsnmp/lib" >> /etc/ld.so.conf

#ldconfig

#python setup.py test//出现类似下图内容即正常:

#python setup.py install

测试net-snmp的python模块的导入:

#python

>>>import netsnmp //如果没有报错的话,则net-snmp的python模块启用成功。

D. net-snmp是如何收集信息的

在windows下编译net-snmp其实很简单,我用的是net-snmp5.2.1.2的版本。只需把源码下的win32目录中的几个库的工程编译就行了。但记住,把netsnmp.lib放在最后编译,要不然编译结果不一样,切记,切记。然后再用编译出来的四个库文件: netsnmp.lib,netsnmpagent.lib,netsnmphelpers.lib,netsnmpmibs.lib,来编译netsnmp.dll。注意还要加上wsock32.lib。如果编译出错,提示跟VC默认的库有冲突,按提示在编译环境中用NODEFAULTLIB:XXX来去掉VC的缺省库文件。

下面介绍一下几个例子程序,例子源代码都可以通过net-snmp的帮助超链接连到其网站下载

1.编译例子example-demon;

#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <signal.h>

#include "nstAgentSubagentObject.h"

static int keep_running;

RETSIGTYPE
stop_server(int a) {
keep_running = 0;
}

int
main(int argc, char *argv[])

{
int agentx_subagent=0; /* change this if you want to be a SNMP master agent */
/*为了编译成为主代理,这里设为0*/
int background = 0; /* change this if you want to run in the background */
int syslog = 0; /* change this if you want to use syslog */

/* print log errors to syslog or stderr */
if (syslog)
snmp_enable_calllog();
else
snmp_enable_stderrlog();

/* we're an agentx subagent? */
if (agentx_subagent) {
/* make us a agentx client. */
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1);
}

/* run in background, if requested */
if (background && netsnmp_daemonize(1, !syslog))
exit(1);

/* initialize tcpip, if necessary */
SOCK_STARTUP;

/* initialize the agent library */
init_agent("example-demon");

/* initialize mib code here */

/* mib code: init_nstAgentSubagentObject from nstAgentSubagentObject.C */
init_nstAgentSubagentObject();

/* initialize vacm/usm access control */
if (!agentx_subagent) {
void init_vacm_vars();/*---------------小修改一下---------------*/
void init_usmUser();
}

/* example-demon will be used to read example-demon.conf files. */
/*这里会读取一个为example-demon.conf 的配置文件--关键*/
init_snmp("example-demon");

/* If we're going to be a snmp master agent, initial the ports */
if (!agentx_subagent)
init_master_agent(); /* open the port to listen on (defaults to udp:161) */

/* In case we recevie a request to stop (kill -TERM or kill -INT) */
keep_running = 1;
signal(SIGTERM, stop_server);
signal(SIGINT, stop_server);

snmp_log(LOG_INFO,"example-demon is up and running.\n");

/* your main loop here... */
while(keep_running) {
/* if you use select(), see snmp_select_info() in snmp_api(3) */
/* --- OR --- */
agent_check_and_process(1); /* 0 == don't block */
}

/* at shutdown time */
snmp_shutdown("example-demon");
SOCK_CLEANUP;

return 0;
}

这里都有很详细的注释,就不说明了。
在vc的工程中,把所用到的例子mib库文件nstAgentSubagentObject.h,nstAgentSubagentObject.c添加进去。并设置好所需的四个库文件,如文开头所述,看是否需要加wsock32.lib,和NODEFAULTLIB。接着就应该可以编译通过了,无错误无警告。

2.关于运行
运行就必须设置配置文件的路径,最好下一个NET-SNMP的二进制包,按缺省路径安装C:\USR。安装时提示还需要下载一个PERL的安装包,用来运行mib2c工具,这个网上都有介绍。配置文件放在
c:\,c:\usr\etc\snmp或C:\usr\share\snmp都有效。但如果你是运行例子主代理程序,会在etc目录下找配置文件。例子的配置文件应和init_snmp("example-demon");中初始化的名字相同:example-demon.conf。配置文件只需设两个值就够了:

#community 的读写根据需要设,这里设的是readonly
rocommunity public
agentaddress 161

另外,如果是运行二进制包,snmp.conf文件不要手工修改,要通过snmpconf生成,手工修改的好像不起作用。例子程序的配置可以手工设置。
最后,把example-demon.conf放到c:\usr\etc\snmp下。关掉二进制包的snmpd.exe服务(如果在运行的话)。然后运行example-demon.exe。正常情况下,如果安装了二进制包,例子可以在编译目录下运行,不行就把netsnmp.dll拷进来,或直接把例子放到二进制包的bin目录下。有问题检查配置文件的路径和设置。最好下载一个叫getif的管理端软件,很方便小巧的查询工具,来侧试。

3.编译自己的mib库
第一种可以通过mib2c生成模版框架,在相关地方添上数据导入指针及其他。
第二种可以参考nstAgentSubagentObject.c。
第三种可以参考net-snmp-xxx\agent\mibgroup\examples下的几个实现方式。

总结
主要是环境设置,库的编译顺序,配置文件设置。参考例子基本没多大问题。

E. 请问net-snmp-5.7.2源码包中哪个文件处理与NSM通信以及解析oid 急!高分!!!

用 snmp_parse_oid 函数解析相应变量的 OID
snmp_parse_oid("HP-DW-SAMPLE::host",varId,&varIdLen)

F. Netsnmp_Node_Handler是什么类型原型是什么

typedef int( Netsnmp_Node_Handler )(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info*requests)
就是说如果你定义Netsnmp_Node_Handler abc;
实际上是定义 int abc(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info*requests)

G. snmp和net-snmp的区别

都是snmp的开发包而已 还有hp的 snmp++ 都可以 随你喜欢了

H. 如何安装net-snmp 5.7.3 并进行开发

y_Bg.jpg);}
table { font-family: "宋体"; font-size: 9pt; line-height: 20px; color: #333333}
a:link { font-size: 9pt; color: #333333; text-decoration: none}
a:visited { font-size: 9pt; color: #333333; text-decoration: none}
a:hover { font-size: 9pt; color: #E7005C; text-decoration: underline}
a:active { font-size: 9pt; color: #333333; text-decoration: none}
/*全局样式结束*/
</style>

I. python 怎么启用netsnmp

[apt-get/yum/zipper/pocman] ininstall net-snmp-python 安装library
install net-snmp net-snmp-utils 安装ipython

然后在程序里面
import netsnmp
就可以使用了.

热点内容
安卓上哪里下大型游戏 发布:2024-12-23 15:10:58 浏览:189
明日之后目前适用于什么配置 发布:2024-12-23 14:56:09 浏览:56
php全角半角 发布:2024-12-23 14:55:17 浏览:829
手机上传助手 发布:2024-12-23 14:55:14 浏览:733
什么样的主机配置吃鸡开全效 发布:2024-12-23 14:55:13 浏览:831
安卓我的世界114版本有什么 发布:2024-12-23 14:42:17 浏览:711
vbox源码 发布:2024-12-23 14:41:32 浏览:279
诗经是怎么存储 发布:2024-12-23 14:41:29 浏览:661
屏蔽视频广告脚本 发布:2024-12-23 14:41:24 浏览:420
php解析pdf 发布:2024-12-23 14:40:01 浏览:821