Вы можете сделать это и в Bash тоже Затем вы можете решить, что написание проверки TCP-порта на Bash вполне приемлемо: #!/bin/bash -e # Poor man TCP port scanner with Bash # Author: Jose Vicente Nunez <@josevnz@fosstodon.org> if [ -n "$1" ] && [ -f "$1" ]; then while read -r line; do machine=$(echo "$line"| /bin/cut -d' ' -f1)|| exit 100 ports=$(echo "$line"| /bin/cut -d' ' -f2)|| exit 101 OLD_IFS=$OLD_IFS IFS="," for port in $ports; do if (echo >/dev/tcp/"$machine"/"$port") >/dev/null 2>&1; then echo "OK: $machine -> $port" else echo "ERROR: $machine -> $port" fi done IFS=$OLD_IFS done < "$1" else echo "ERROR: Invalid or missing data file!" exit 103 fi Чистый скрипт Bash работает почти так же, как версия Expect: $ ./tcp_port_scan.sh port_scan.csv OK: google.com -> 80 OK: amazon.com -> 80 OK: raspberrypi -> 22 OK: raspberrypi -> 9090 OK: raspberrypi -> 8086 ERROR: raspberrypi -> 21 OK: dmaf5 -> 22 ERROR: dmaf5 -> 80
Прекратите использовать Telnet для тестирования портов. Часть 3.
27 июля 202327 июл 2023
6
1 мин