Articles
Tesztelje a 22-es port fájljában található gazdagépekkel való összekapcsolást curl paranccsal
On december 31, 2020 by adminId szeretné a következő “curl” parancsot bedugni egy bash szkriptbe és futtatni egy hostfájl ellen az IP-címek ekkor a kimenetet sikerként vagy kudarcként jeleníti meg a kimeneti fájlban.
curl -v telnet 10.10.10.10:22
Ez lehetséges?
Válasz
A bash beépített programjának használata a nyitott portok ellenőrzésére is működhet:
#!/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"
Megjegyzések
- Nem tudtam ' ezt. Dokumentálva van valahol? Az IPv6-tal is működik?
- @Tomasz: ' dokumentálva van a bash referencia kézikönyvben 3.6 Átirányítások . ' nem vagyok biztos benne, hogy működik-e az ipv6-tal.
Válasz
Még nincs meg a hírnevem ahhoz, hogy véleményezzem azt a bejegyzést, amely azt állítja, hogy a curl nem “ssh” vagy “telnet”. Ez nem pontos. A Curl a protokollok sokaságát kezeli, beleértve a telnet, ssh, scp, sftp, ftps és még sok mást.
Ez a helyes szintaxis a göndörítéshez:
curl -v telnet://127.0.0.1:22
Válasz
curl
HTTP / HTTPS / FTP-hez való; nem az SSH vagy a Telnet számára.
Csak a netcat-ot használnám:
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
Vélemény, hozzászólás?