一、准备工作 1、安装Microsoft Visual Studio 2005 ,其中Visual C++ 为必选组件 2、安装Active Perl 解析器至C:/usr 目录下 该步骤必须执行,否则在后期执行配置操作时,会提示没有安装perl解析器的错误,从而无法自动配置。 二、编译NET-SNMP源文件 (基于readme.win32中的Microsoft Visual C++ - Workspace - Building部分) 1、配置默认安装路径,打开net-snmp-5.1.3/win32/net-snmp/net-snmp-config.h ,将第8行改为#define INSTALL_BASE "C:/usr" 在net-snmp-config.h文件中,所有的路径都是使用UNIX下的/符号,如果将其改为Windows下的/符号的话,反而会在后期配置时出现路径错误。 2、在Visual Studio 2005中打开net-snmp-5.1.3/win32/win32.dsw ,点击“全部都是 ”转换工作空间。 3、单击菜单栏的“生成”下的“配置管理器”,将活动解决方案配置从Debug改成release。此处也可以不修改,但是在后面的安装过程中,需要加入“-debug”参数。(后续内容以不修改为例)。 4、在右侧解决方案资源管理器中,依次对libagent、libhelpers、libnetsnmptrapd、snmplib、netsnmpmibs 这五个项目单击鼠标右键,选择“重新生成 ”。 5、单击菜单栏的“生成”下的“生成解决方案 ”。 6、单击菜单栏的“生成”下的“配置管理器”,在“项目上下文中”[color=red]去掉[/color]对libagent、 libhelpers、libnetsnmptrapd、snmplib、netsnmpmibs这五个项目的选择,其余不变。 7、单击菜单栏的“生成”下的“重新生成 ”。 8、编译结束之后,单击菜单栏的“文件”下的“[color=red]关闭解决方案[/color]”,退出。 三、安装NET-SNMP (基于readme.win32中的Microsoft Visual C++ - Workspace - Installing部分) 1、打开net-snmp-5.1.3/win32/install-net-snmp.bat ,检查第12行是否为set INSTALL_BASE="c:/usr" ,不是的话请改成这个。 2、打开命令提示符窗口,进入net-snmp-5.1.3/win32 目录下,运行 install-net-snmp.bat -debug 安装。 如果编译的时候将活动解决方案配置改成了release的话,直接运行install-net-snmp.bat即可。 3、拷贝net-snmp-5.1.3/win32/local/*.bat 文件至C:/usr/bin 目录下。 该步骤本应该在执行批处理的时候自动执行,但实际上这些文件并没有被拷贝过去,所以我们必须手动进行,否则无法配置。 四、检查文件是否完整 ,在C:/usr/bin目录下应该存在下列22个文件 mib2c.bat、snmpconf.bat、traptoemail.bat、snmpconf、snmpbulkget.exe、 snmpbulkwalk.exe、snmpd.exe、snmpdelta.exe、snmpdf.exe、snmpget.exe、 snmpgetnext.exe、snmpnetstat.exe、snmpset.exe、snmpstatus.exe、 snmptable.exe、snmptest.exe、snmptranslate.exe、snmptrap.exe、snmptrapd.exe、 snmpusm.exe、snmpvacm.exe、snmpwalk.exe 五、配置NET-SNMP (基于readme.win32中的Configuring Net-SNMP部分) 1、打开C:/usr/bin/snmpconf.bat ,检查第2行是否为set MYPERLPROGRAM=c:/usr/bin/snmpconf ,不是的话请改成这个。 2、打开C:/usr/bin/snmpconf ,查找所有/usr/local/ 并替换为C:/usr/ 。 该步骤必须执行,snmpconf中的文件路径采用的是UNIX下的/usr/local/,这里必须改为Windows下的C:/usr/,但 /符号仍然保持UNIX下的/符号,不用改成windows下的/符号,否则运行时会提示无法创建路径。 3、运行 snmpconf -i 4、选择 3: snmp.conf 5、选择 3: Textual mib parsing 6、选择 1: Specifies directories to be searched for mibs. 7、输入 c:/usr/share/snmp/mibs 8、输入 finished 回车 finished 回车 quit 回车,正常退出。 9、将C:/usr/share/snmp 目录下的snmp.conf 拷贝至C:/usr/etc/snmp 目录。 10、拷贝net-snmp-5.1.3/win32/EXAMPLE.conf.win32 至C:/usr/etc/snmp 目录下,并改名snmpd.conf 11、打开刚刚拷贝的snmpd.conf ,将第71行改为com2sec local localhost public 原文件中71行的COMMUNITY部分必须被改成public,COMMUNINTY只是个例子,不修改的话后期无法正常执行。 12、删除或者注释掉第72行 。 理由与上一条相同,NETWORK/24也只是个例子。 六、运行NET-SNMP 1、打开一个命令提示符窗口,运行 snmpd -f -Le -d 2、提示如下则正确运行: NET-SNMP version 5.1.3 3、新开一个命令行窗口,运行 snmpget -c public -v 2c localhost system.sysUpTime.0 4、当前窗口提示如下: SNMPv2-MIB::sysUpTime.0 = Timeticks: (8279) 0:01:22.79 5、原命令行窗口提示如下: Received 41 bytes from 127.0.0.1 76 0000: 30 27 02 01 01 04 06 70 75 62 6C 69 63 A0 1A 02 0'.....public... SMM) 0016: 02 0F BC 02 01 00 02 01 00 30 0E 30 0C 06 08 2B .........0.0...+ 0032: 06 01 02 01 01 03 00 05 00 ......... Received SNMP packet(s) from 127.0.0.1 GET message -- SNMPv2-MIB::sysUpTime.0 Sending 43 bytes to 127.0.0.1 0000: 30 29 02 01 01 04 06 70 75 62 6C 69 63 A2 1C 02 0).....public... 0016: 02 0F BC 02 01 00 02 01 00 30 10 30 0E 06 08 2B .........0.0... 0032: 06 01 02 01 01 03 00 43 02 20 57 .......