Articles
Prova la connettività agli host nel file sulla porta 22 con il comando curl
Su Dicembre 31, 2020 da adminVorrei collegare il seguente comando “curl” in uno script bash ed eseguirlo su un file host degli indirizzi ip quindi visualizza loutput come successo o fallimento in un file di output.
curl -v telnet 10.10.10.10:22
È possibile?
Risposta
Anche lutilizzo del builtin bash per verificare la presenza di porte aperte può funzionare:
#!/bin/bash host_file=/path/to/file.txt out_file=/path/to/out.txt while read -r ip; do if timeout 5 bash -c "cat < /dev/null >/dev/tcp/${ip}/22"; then echo -e "${ip}\tSuccess" else echo -e "${ip}\tFailure" fi >> "$out_file" done < "$host_file"
Commenti
- Questo ' non lo conoscevo. È documentato da qualche parte? Funziona anche con IPv6?
- @Tomasz: ' è documentato nel manuale di riferimento di bash 3.6 Reindirizzamenti . ' non so se funziona con ipv6.
Rispondi
Non ho ancora la reputazione necessaria per commentare il post che afferma che curl non è per ssh o telnet. Non è esatto. Curl gestisce una moltitudine di protocolli, inclusi telnet, ssh, scp, sftp, ftps e altri.
Questa è la sintassi corretta per curl:
curl -v telnet://127.0.0.1:22
Answer
curl
è per HTTP / HTTPS / FTP; non per SSH o Telnet.
Userei solo netcat:
testport=22 # 22 for ssh; 23 for telnet; 80 for HTTP; etc. while read ip; do if nc -w2 -z $ip $testport; then echo $ip up else echo $ip down fi >> testresults.txt done < hostlist.txt
Lascia un commento