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,写好后,在注册表中配置好,我们就可以使用该服务了。在下一篇我将介绍如何定制自己的服务。