次の「curl」コマンドをbashスクリプトにプラグインして、IPアドレスのホストファイルに対して実行し、出力を成功または失敗として出力ファイルに表示します。
curl -v telnet 10.10.10.10:22
これは可能ですか?
Bashビルトインを使用して開いているポートを確認することもできます。
#!/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"
curl
はHTTP/HTTPS/FTP用です。 SSHやTelnet用ではありません。
私は単に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
これはcurlの正しい構文です。
curl -v telnet://127.0.0.1:22