Запросить диапазон сети для конкретного OID и распечатать результат

В текущих дистрибутивах Linux для этого рекомендуетсяssинструмент:

ss -tuw

Это покажет сокеты TCP (-t), UDP(-u)и необработанные (-w). Добавьте -a, чтобы также видеть прослушиваемые сокеты (, т. е. сокеты , ожидающие получения входящего запроса на соединение, или открытые для входящего трафика в случае UDP ). Добавьте -r, чтобы попытаться разрешить адреса и служебные номера.

0
05.11.2020, 01:30
1 ответ

Вы можете просто добавить команду для фильтрации вывода snmpget. Например, сgrep:

for (( i=254; $i; i=$i-1 )) do
    host=10.250.53.$i
    snmpget -v 2c -c public -t 0.5 -r 1 $host iso.3.6.1.2.1.1.1.0 | grep r4000-d7000r1037-993021u
done
read -p 'press Enter to continue...'

Если целью является получение только IP-адреса (Я не знаю, что выводит snmpget), вы можете проверить, соответствует ли строка (с помощьюgrep -q)и отобразить только IP-адрес, если так и было:

for (( i=254; $i; i=$i-1 )) do
    host=10.250.53.$i
    if snmpget -v 2c -c public -t 0.5 -r 1 $host iso.3.6.1.2.1.1.1.0 | grep -q r4000-d7000r1037-993021u; then
        echo $host
    fi
done
read -p 'press Enter to continue...'
0
18.03.2021, 22:52

Теги

Похожие вопросы