Articles
Testați conectivitatea la gazde în fișierul din portul 22 cu comanda curl
On decembrie 31, 2020 by adminAș dori să conectați următoarea comandă „curl” într-un script bash și să o rulați pe un fișier gazdă de adrese IP afișează rezultatul ca succes sau eșec într-un fișier de ieșire.
curl -v telnet 10.10.10.10:22
Este posibil?
Răspuns
Utilizarea bazhului încorporat pentru a verifica dacă există porturi deschise poate funcționa și:
#!/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"
Comentarii
- Nu l-am cunoscut pe ' Este documentat undeva? Funcționează și cu IPv6?
- @Tomasz: ' este documentat în manualul de referință bash 3.6 Redirecții . ' Nu sunt sigur dacă funcționează cu ipv6.
Răspuns
Nu am încă reputația necesară pentru a comenta postarea care susține că nu este curl pentru ssh sau telnet. Nu este exact. Curl gestionează o multitudine de protocoale, inclusiv telnet, ssh, scp, sftp, ftps și multe altele.
Aceasta este sintaxa corectă pentru curl:
curl -v telnet://127.0.0.1:22
Răspuns
curl
este pentru HTTP / HTTPS / FTP; nu pentru SSH sau Telnet.
Aș folosi doar 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
Lasă un răspuns