Articles
Tester la connectivité aux hôtes dans le fichier sur le port 22 avec la commande curl
On décembre 31, 2020 by adminJe voudrais brancher la commande « curl » suivante dans un script bash et lexécuter sur un fichier host dadresses IP puis afficher la sortie comme réussite ou échec dans un fichier de sortie.
curl -v telnet 10.10.10.10:22
Est-ce possible?
Réponse
Lutilisation du bash intégré pour vérifier les ports ouverts peut également fonctionner:
#!/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"
Commentaires
- Je ne ' pas connaître celui-ci. Est-ce documenté quelque part? Fonctionne-t-il également avec IPv6?
- @Tomasz: Il ' est documenté dans le manuel de référence bash 3.6 Redirections . Je ' ne sais pas si cela fonctionne avec ipv6.
Réponse
Je nai pas encore la réputation nécessaire pour commenter le post qui prétend que curl nest pas pour ssh ou telnet. Ce nest pas exact. Curl gère une multitude de protocoles, notamment telnet, ssh, scp, sftp, ftps, etc.
Voici la syntaxe correcte pour curl:
curl -v telnet://127.0.0.1:22
Answer
curl
est pour HTTP / HTTPS / FTP; pas pour SSH ou Telnet.
Jutiliserais simplement 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
Laisser un commentaire