SnmpGet是编写的函数,给出IP地址,OID号(如1.3.6.1.2.1.1.0),就可以获得机器的相应值,但是我在获取机器IP地址时,取不出来,用MIB Browser时,要Get\Select Instance才行,那么,我编程序要怎么做呢?
请把用你的方法取得的值贴上来,才给分的哟^_^

解决方案 »

  1.   

    分太少,抠门
    一台机器可以有多个IP地址,这个你应该知道吧,所以它是一个表,而不是凭一个oid就可以读出的。
    IP地址表:ipAddrTable(1.3.6.1.2.1.4.20)
    使用Walk的方法,遍历其中的ipAdEntAddr属性,就可以得到机器上所有的IP地址,包括回环地址
    C:\>snmpwalk -v 1 -c public 127.0.0.1 1.3.6.1.2.1.4.20.1.1
    iso.3.6.1.2.1.4.20.1.1.10.1.1.1 = IpAddress: 10.1.1.1
    iso.3.6.1.2.1.4.20.1.1.127.0.0.1 = IpAddress: 127.0.0.1
    iso.3.6.1.2.1.4.20.1.1.192.168.0.1 = IpAddress: 192.168.0.1
      

  2.   

    嗯,同意 keios(C->C++->java->C 循环中) 
    对于多个ip地址,参考MIB表得到ipAddrTable来(GetBulk)读出ip地址
      

  3.   

    这个非常容易啊.
    不过我是直接用 VC 提供的原始的 SNMP API 编程实现的,SNMP++ 没用过.一个机器应该有一组 IP 地址, 存放在 MIB 的 ipAdEntAddr 属性中,
    每个 IP 原始地取出来是一个 32 BIT 的字节码,
    你需要把它的每个字节转化成十进制整数对应的字符才能显示出来,并且自己在里面加小分隔符 "."
      

  4.   

    非常感谢, keios(C->C++->java->C 循环中) 下次你再回答我的问题,我就多给你分,好吧