Articles
Test de connectiviteit met hosts in het bestand op poort 22 met het curl-commando
Geplaatst op december 31, 2020 door adminIk wil graag het volgende “curl” -commando in een bash-script pluggen en het uitvoeren tegen een hostfile van ip-adressen, dan wordt de uitvoer weergegeven als geslaagd of mislukt in een uitvoerbestand.
curl -v telnet 10.10.10.10:22
Is dit mogelijk?
Antwoord
Het gebruik van de ingebouwde bash om te controleren op open poorten kan ook werken:
#!/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"
Reacties
- Ik kende ' deze niet. Is het ergens gedocumenteerd? Werkt het ook met IPv6?
- @Tomasz: het is ' gedocumenteerd in de bash-referentiehandleiding 3.6 Omleidingen . Ik ' weet niet zeker of het werkt met ipv6.
Antwoord
Ik heb nog niet de reputatie die nodig is om commentaar te geven op het bericht dat beweert dat curl niet is voor ssh of telnet. Dat is niet juist. Curl verwerkt een groot aantal protocollen, waaronder telnet, ssh, scp, sftp, ftps en meer.
Dit is de juiste syntaxis voor curl:
curl -v telnet://127.0.0.1:22
Antwoord
curl
is voor HTTP / HTTPS / FTP; niet voor SSH of Telnet.
Ik “zou gewoon netcat gebruiken:
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
Geef een reactie