Articles
Pruebe la conectividad a los hosts en el archivo en el puerto 22 con el comando curl
On diciembre 31, 2020 by adminMe gustaría conectar el siguiente comando «curl» en un script bash y ejecutarlo contra un archivo host de direcciones IP luego muestra la salida como exitosa o falla en un archivo de salida.
curl -v telnet 10.10.10.10:22
¿Es esto posible?
Respuesta
El uso de bash incorporado para verificar puertos abiertos también puede funcionar:
#!/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"
Comentarios
- Yo ' no conocía este. ¿Está documentado en alguna parte? ¿También funciona con IPv6?
- @Tomasz: ' está documentado en el manual de referencia de bash 3.6 Redirecciones . ' No estoy seguro de si funciona con ipv6.
Respuesta
Todavía no tengo la reputación necesaria para comentar la publicación que afirma que curl no es para ssh o telnet. Eso no es exacto. Curl maneja una multitud de protocolos, incluidos telnet, ssh, scp, sftp, ftps y más.
Esta es la sintaxis correcta para curl:
curl -v telnet://127.0.0.1:22
Responder
curl
es para HTTP / HTTPS / FTP; no para SSH o Telnet.
Simplemente usaría 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
Deja una respuesta