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...'
是否可以稍微修改两个选项的脚本:
- 扩大民意调查范围:10.77.xx
- 只打印具有目标 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.
...
第二个选择很难,扩大范围就足够了。