通过SNMP获取网卡接口信息

(从超级用户处移动,我意识到这里更合适)

嘿,我需要弄清楚如何通过SNMP可靠地获取networking接口的各种信息,例如网卡的IP地址,网关,DNSsearch服务器列表,以及接口上是否启用了DHCP

不幸的是,我发现这些信息分散在(SNMP)全球的四个angular落,而我正在追踪所有的信息。 到目前为止,我有IP地址,我我已经弄清楚如何收集网关,但是如果有人能够certificate我的“algorithm”,我不知道如何去做IPv6。

我找不到:

  • DNS服务器search列表,每个networking接口卡
  • DHCP启用/禁用(即固定或可变IP地址),每个networking接口卡

这是我为获得网关而提出的“algorithm”:

  1. 对于IF MIB ifTable中ifType = Ethernet的每个条目,获取ifIndex
  2. 如果可以在IP Forward MIB inetCidrRouteTable中findifIndex:
    1. 对于IPv4地址,如果inetCidrRouteDest = 0.0.0.0,则网关是inetCidrRouteNextHop
    2. 我不知道该怎么办IPv6地址?
  3. 否则,如果可以在IP Forward MIB ipCidrRouteTable中findifIndex
    • 如果ipCidrRouteDest = 0.0.0.0,则网关是ipCidrRouteNextHop
  4. 否则,如果可以在IP Forward MIB ipForwardTable中findifIndex
    • 如果ipForwardDest = 0.0.0.0,则网关是ipForwardNextHop
  5. 否则,如果可以在RFC 1213 MIB ipRouteTable中findifIndex
    • 如果ipRouteDest = 0.0.0.0,则网关为ipRouteNextHop

唷! 正如你所看到的,一个讨厌的噩梦。 那么任何人都可以certificate/完成我的网关algorithm上面,或告诉我关于DNS / DHCP?

也只是FYI,Unix / Linux的shell脚本的替代品不会削减 – 我知道如何做到这一点,我也需要询问像思科交换机和路由器,networking打印机等非nix设备。

谢谢!

我喜欢使用http://tools.cisco.com/Support/SNMP/do/BrowseOID.do查看OID是最新的还是已弃用的。

你的阿尔格对我来说很好。 我希望它不必如此复杂。 你有没有尝试,例如,只是检查ipRouteTable?

至于ipNetToMediaType或ipNetToPhysicalType的值为:INTEGER:dynamic(3)。

没有包含名称服务器的标准MIB。

而不是看snmp索引,你真的想使用snmptable程序。

例如

/ usr / bin / snmptable -v2c -c public $ HOST NETAPP-MIB :: netifTable

MIBS实际上是非常可读的。 其余的,RedGrittyBrick说了这一切。

我曾经做过的事情是使用snmpwalk枚举某个点下面的整个树并将结果保存在一个文件中,然后可以search一个值(例如DNS服务器的IP地址)并查找与其关联的OID 。

然后,我会知道什么OIDs放在我的MRTGconfiguration文件。

不同的制造商在不同的地方信息。 如果你没有他们的MIB定义,那么这是我能find的反向工程OID的最好方法。

如果窗口然后

在Visual Basic中创build你自己的程序,我不会去使用SNMP。