轮询某些 SNMP OID 的网络范围

轮询某些 SNMP OID 的网络范围

Shell 脚本扫描网络范围以查找特定 SNMP OID:

#!/bin/bash

# snmpget command poll the network range for certain OIDs

for (( i=254; $i; i=$i-1 )) do 
    host=10.77.32.$i; 
    snmpget -v 2c -c public -t 0.5 -r 1 $host iso.3.6.1.2.1.2.2.1.6.1 iso.3.6.1.2.1.2.2.1.6.2 iso.3.6.1.2.1.2.2.1.6.16; 
done;
read -p 'press Enter to continue...' 

是否可以稍微修改两个选项的脚本:

  1. 扩大民意调查范围:10.77.xx
  2. 只打印具有目标 MAC 地址的 OID,跳过其他 MAC。

即网络范围需要轮询特定的 OID,它的目标是该 OID 中存在的 MAC,应该打印它。其他 MAC 地址被跳过 - 即使存在某些 OID,但不包含目标 MAC 地址,也不会打印:

...
Timeout: No Response from 10.77.32.242.
Timeout: No Response from 10.77.32.241.
iso.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 00 09 4B EF D2 02 
iso.3.6.1.2.1.2.2.1.6.2 = Hex-STRING: E4 46 C5 B7 93 14 
Timeout: No Response from 10.77.32.239.
Timeout: No Response from 10.77.32.238.
...

第二个选择很难,扩大范围就足够了。

相关内容