我做了一个简单的SNMP管理工作站软件,用来监听网络上装有SNMP Agent的站点,当我指定监听广播地址时,即255.255.255.255,软件也可正常工作,但如何得到具体的IP地址呢?是否要先判断网络上是否装有Agent?

解决方案 »

  1.   

    我也有一个同样的问题,我向局域网广播snmp包,pdu里添加一些信息,比如sysDescribe等,也能收到消息,在SnmpReceiveMsg中有srcAgent一项,是LPSTR型的,不过我把他MessageBox时总出错,也请高人解答一下
      

  2.   

    LPSTR得到了,内存中看一下是否得到,得到了,转换成CString,应该就可以显示了
      

  3.   

    得到网络中的Agent,一般需要提前知道,这个就是采用的C/S模式
    如果不知道,SNMP管理也没什么意义了
    当然,可以广播发送一个系统请求,如 oid 1.3.6.1.2.1.1.1.0 system decription
    然后根据返回的结果提取agent 的ip 和port
      

  4.   

    oyljerry(【勇敢的心】→ ㊣Contributing A za!㊣) 然后根据返回的结果提取agent 的ip 和port
    ---------------------------------
    大虾能否说的清楚一点啊?不知道怎么提取啊谢谢!!
      

  5.   

    你用来开发SNMP的开发包中应该提供了这些接口的,好好看看
      

  6.   

    在winsnmp中的SnmpReceiveMsg的参数中有一项时srcAgents和dstAgents,应该就是目的ip和源ip了,我的方法是定义一个wMsg消息,再和这个消息关联一个函数,再创建一个包含这个消息的session,关联上pdu,向广播地址发送snmp包。当有消息回复是就会自动调用那个函数。不过还请oyljerry(【勇敢的心】→ ㊣Contributing A za!㊣)解答一下怎么样在内存中查看呢。