есть ли возможность просто проверить IP-адрес с портами из файла csv?
В моем csv есть сотни IP-адресов в этом формате
123.123.321.321:80,22,443
223.223.321.321:80,22,443
Есть ли возможность чтобы проверить IP-адреса в этом порядке и отформатировать с помощью сценария bash, чтобы сделать его автоматическим?
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