Улучшение bash-скрипта

Мне нужно улучшить этот скрипт:

nmap -PN -p 9292 -sN 192.68.12.14 | grep "open" 

Мне нужно проверить подключение к ip 192.168.15.24 через порт 9292.

Если порт открыт, выведите «порт 9292 открыт»

Если порт закрыт, выведите «порт 9292 закрыт»

Результат будет взят из Айсинга сделать проверку.

Есть идеи?

0
задан 5 April 2016 в 22:47

2 ответа

Помимо правильного ответа @ DopeGhoti с использованием netcat, ваш скрипт можно улучшить, изменив некоторые параметры Nmap и добавив несколько.

  • -sN означает «сканирование TCP NULL», что является очень необычным режимом сканирования необработанных сокетов, требующим привилегий root. Он также обладает странным свойством только маркировать порты как «закрытые» или «нефильтрованные», но никогда не «открытые». Вы, вероятно, хотите вместо этого обычное сканирование TCP Connect, используя опцию -sT.
  • Nmap попытается выполнить обратный поиск по имени (PTR) по умолчанию. Избегайте этой ненужной задержки с опцией -n.
  • Использование нормального вывода экрана Nmap в сценарии не рекомендуется, даже для чего-то такого простого, потому что оно может меняться между версиями. Для стабильного формата, пригодного для машинного анализа, используйте grepable (-oG) или XML (-oX) .
  • -PN является старым (устарело в 2010 году) правописанием -Pn. Он пропускает этап обнаружения хоста, поэтому, вероятно, хорошая идея для вашего сценария.

Пример со всеми этими изменениями:

nmap -n -Pn -sT -p 9292 -oG - | grep '/open/'
0
ответ дан 5 April 2016 в 22:47

Для этого требуется пакет netcat:

if nc -z 192.68.12.14 9292; then
    echo "Port is open"
else
    echo "Port is closed"
fi

nc -z попытается установить соединение с указанным хостом и портом; в случае успеха он возвращает 0 код завершения и ненулевой код в противном случае. На самом деле он ничего не выводит на терминал. Чтобы получить желаемый результат, я использую оператор if для проверки результатов проверки соединения и echo соответствующий результат для терминала.

0
ответ дан 5 April 2016 в 22:47

Другие вопросы по тегам:

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