curlコマンドを使用して、ポート22のファイルからホストへの接続をテストします。

curlコマンドを使用して、ポート22のファイルからホストへの接続をテストします。

次の「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

関連情報