Задать вопрос
DazmaLab
@DazmaLab

Как перебрать элементы в массиве для вывода netcat?

Хочу просканировать определенные порты. Порты дергаю из массива
Если вызывать конкретный элемент из массива, то все работает.
#for PORT in `nc -w 1 -zv 10.10.0.5 ${ARR_ID_PORTS[PORT_0443]}`;

а как просканировать все из массива не могу сообразить, выдает ошибку.

declare -A ARR_ID_PORTS

ARR_ID_PORTS["PORT_0443"]="443"
ARR_ID_PORTS["PORT_6650"]="6650"
ARR_ID_PORTS["PORT_6651"]="6651"

#
# nc -w 1 -zv 10.10.0.5 6647-6666
#

echo ${ARR_ID_PORTS[@]}

for PORT in `nc -w 1 -zv 10.10.0.5 "${ARR_ID_PORTS[@]}"`;
#for PORT in `nc -w 1 -zv 10.10.0.5 ${ARR_ID_PORTS[PORT_0443]}`;

do

echo -n "$PORT"
  • Вопрос задан
  • 80 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
declare -A ARR_ID_PORTS

ARR_ID_PORTS["PORT_0443"]="443"
ARR_ID_PORTS["PORT_6650"]="6650"
ARR_ID_PORTS["PORT_6651"]="6651"

echo "Сканируем порты: ${ARR_ID_PORTS[@]}"

for PORT in "${ARR_ID_PORTS[@]}"; do
    echo "Проверяем порт: $PORT"
    if nc -w 1 -zv 10.10.0.5 "$PORT" 2>&1; then
        echo "Порт $PORT: ОТКРЫТ"
    else
        echo "Порт $PORT: ЗАКРЫТ"
    fi
    echo "---"
done
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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