當前位置:首頁 » 操作系統 » 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 瀏覽:830
安卓我的世界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 瀏覽:820