проверить IP-адреса с несколькими портами из csv

есть ли возможность просто проверить IP-адрес с портами из файла csv?

В моем csv есть сотни IP-адресов в этом формате

123.123.321.321:80,22,443
223.223.321.321:80,22,443

Есть ли возможность чтобы проверить IP-адреса в этом порядке и отформатировать с помощью сценария bash, чтобы сделать его автоматическим?

0
29.03.2017, 21:35
1 ответ
while IFS=: read -r ip ports; do
   savIFS=$IFS
   IFS=,; set -f; set -- $ports; r=
      while case $# in 0 ) break ;; esac; do
         nc "$ip" "$1" 1>/dev/null 2>&1
         r=${r:-$ip:}${r:+,($?)}$1
         shift
      done
      echo "$r"
   IFS=$savIFS
done < yourcsvfile

Теперь все порты, заключенные в ненулевое значение, закрыты, а (0) открыты.

Для каждого запроса OP создается сообщение о состоянии для каждого IP-адреса:

while IFS=: read -r ip ports; do
   savIFS=$IFS
   IFS=,; set -f; set -- $ports
      for port
      do
         nc "$ip" "$port" 1>/dev/null 2>&1
         case $? in
            0 ) status="PASS" ;;
            * ) status="FAIL" ;;
         esac
         echo "$ip:$port - $status"
      done
   IFS=$savIFS
done < yourcsvfile
0
28.01.2020, 04:47

Теги

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