snmp 即简单网络管理协议 windows上提供一些固定的snmp服务,比如检测系统运行时间,以此可以通过检测时间是否大于零来判断是否开机,它可以检测网络状态、修改网络设备配置、接收网络事件警告等。
如下就是检测是否开机的代码: //检测机器是否正常 BOOL CheckComputer(CString szSqlIP) { Oid oid("1.3.6.1.2.1.1.1.0"); //这个oid就是区别我们要访问的类型如检测sqlserver2000数据库是否启动用// “1.3.6.1.4.1.311.1.4.1.1.1.1.5” int status; CTarget ctarget( (IpAddress)szSqlIP); ctarget.set_timeout(30); Vb vb(oid); Pdu pdu; Snmp snmp( status); if ( status != SNMP_CLASS_SUCCESS) return FALSE; //-------[ Invoke a SNMP++ Get ]--------------------------------------- pdu += vb;//add the variable binding if ((status = snmp.get(pdu, ctarget)) != SNMP_CLASS_SUCCESS) return FALSE; else { pdu.get_vb(vb,0); if (strlen(vb.get_printable_value()) > 0 ) return TRUE; else return FALSE; } return TRUE; } 除了window 为我们做好的一些固定的服务,我们能不能自己定制服务呢,答案是肯定的。这就需要我们自己写一个snmp的代理,它是一个dll,写好后,在注册表中配置好,我们就可以使用该服务了。在下一篇我将介绍如何定制自己的服务。 本文来源:http://blog.csdn.net/zh_ji/archive/2007/07/26/1710634.aspx
|