В текущих дистрибутивах Linux для этого рекомендуетсяss
инструмент:
ss -tuw
Это покажет сокеты TCP (-t
), UDP(-u
)и необработанные (-w
). Добавьте -a
, чтобы также видеть прослушиваемые сокеты (, т. е. сокеты , ожидающие получения входящего запроса на соединение, или открытые для входящего трафика в случае UDP ). Добавьте -r
, чтобы попытаться разрешить адреса и служебные номера.
Вы можете просто добавить команду для фильтрации вывода 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...'