次の「curl」コマンドをbashスクリプトに挿入し、IPアドレスのホストファイルに対して実行し、出力ファイルに成功または失敗として出力を表示したいと思います。
curl -v telnet 10.10.10.10:22
可能ですか?
答え1
私はまだカールがSSHやTelnetで動作していないと主張している投稿にコメントするのに必要な評判を得ていません。これは正確ではありません。 Curlは、telnet、ssh、scp、sftp、ftpsなどを含むさまざまなプロトコルを処理できます。
これはカールの正しい構文です。
curl -v telnet://127.0.0.1:22
答え2
開いているポートを確認するために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"
答え3
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