用C++通过SNMP获取局域网内所有的SNMP设备(代码实现,不用工具),思路也可以
如题!
[解决办法]
Snmp数据的发送过程
(1)Snmp API 编程模型的第一步就是要建立一个类似于winsocket中套接字之类
的东东,由于我没有找到这方面的东东,所以只能告诉大家这一步我们应该调用
SnmpStartup( )。
(2)在调用了SnmpStartup( )之后,我们应该做的就是创建一个会话(session),
相应的我们应该调用函数SnmpCreateSession( )。
(3)在成功的创建了会话之后,我们应该做的就是创建我们需要传送给Agent的Vbl
(Variable Bind List),这里我们需要了解的是SnmpCreateVbl( )和SnmpSetVb( )。
(4)由于SNMP是应用层协议,所以它需要网络层协议的支持,SNMP使用的网络层协
议为UPD协议,因此在成功的创建了Vbl之后,它需要创建在网络层传输的PDU(Protocol
Data Unit).这里,我们需要了解的是SnmpCreatePdu()。
(5)在完成以上步骤时候,我们就可以调用SnmpSendMsg( )将我们所创建的PDU发
送给Agent。
在成功发送完一个PDU之后,系统需要监听Agent的回送消息,因此,我们还需
要进一步讲述Snmp数据的接收过程。这个过程需要windows下消息传送的知识,
这方面我是个菜鸟,所以也没有什么好写的,我在下面仅给出一些基本的过程,
具体的东西,还需要大家仔细琢磨。
Snmp数据的接收过程:
(1)消息的触发将需要我们调用SnmpRecvMsg( )来接收Agent发送的PDU,
(2)在成功接收消息之后,我们需要调用SnmpGetPdu获得Agent发送过来的PDU。
(3)在获得PDU之后,我们需要调用SnmpCountVbl获得Vbl中Vb的数量,并利用
SnmpGetVb逐个处理没一个Vb。
[解决办法]
Snmp数据的发送过程
(1)Snmp API 编程模型的第一步就是要建立一个类似于winsocket中套接字之类
的东东,由于我没有找到这方面的东东,所以只能告诉大家这一步我们应该调用
SnmpStartup( )。
(2)在调用了SnmpStartup( )之后,我们应该做的就是创建一个会话(session),
相应的我们应该调用函数SnmpCreateSession( )。
(3)在成功的创建了会话之后,我们应该做的就是创建我们需要传送给Agent的Vbl
(Variable Bind List),这里我们需要了解的是SnmpCreateVbl( )和SnmpSetVb( )。
(4)由于SNMP是应用层协议,所以它需要网络层协议的支持,SNMP使用的网络层协
议为UPD协议,因此在成功的创建了Vbl之后,它需要创建在网络层传输的PDU(Protocol
Data Unit).这里,我们需要了解的是SnmpCreatePdu()。
(5)在完成以上步骤时候,我们就可以调用SnmpSendMsg( )将我们所创建的PDU发
送给Agent。
在成功发送完一个PDU之后,系统需要监听Agent的回送消息,因此,我们还需
要进一步讲述Snmp数据的接收过程。这个过程需要windows下消息传送的知识,
这方面我是个菜鸟,所以也没有什么好写的,我在下面仅给出一些基本的过程,
具体的东西,还需要大家仔细琢磨。
Snmp数据的接收过程:
(1)消息的触发将需要我们调用SnmpRecvMsg( )来接收Agent发送的PDU,
(2)在成功接收消息之后,我们需要调用SnmpGetPdu获得Agent发送过来的PDU。
(3)在获得PDU之后,我们需要调用SnmpCountVbl获得Vbl中Vb的数量,并利用
SnmpGetVb逐个处理没一个Vb。
用C++通过SNMP获取局域网内所有的SNMP设备(代码实现,不用工具),思路也可以解决办法
用C++通过SNMP获取局域网内所有的SNMP设备(代码实现,不用工具),思路也可以如题![解决办法]Snmp数据的发送
