/ dev/tcp/Host/portコマンドを使用するさまざまな方法と、これに関するマニュアルページの場所
< /dev/tcp/www.google.com/80
cat > /dev/tcp/www.google.com/80
構文の公式リファレンスについては man bash で、リダイレクトに関するセクションを検索してください。
netcatまたはncが利用できないSolarisボックスから、数千のノードのいくつかのポートの接続をチェックする
Bashのネットワークリダイレクト機能を使用する1つの方法は、テキストをそのホストのポートにエコーして、成功したかどうかを確認することです。 Bashは、そのホストのそのポートに接続する能力に基づいてtrue/falseを返します。
ホストの配列とポートの配列を示し、TCP経由でそれらのポートに接続しようとするサンプルコード:
#!/bin/bash
hosts=(127.0.0.1 127.0.0.2 127.0.0.3)
ports=(22 23 25 80)
for Host in "${hosts[@]}"
do
for port in "${ports[@]}"
do
if echo "Hi from Bharat's scanner at $(uname -n)" 2>/dev/null > /dev/tcp/"$Host"/"$port"
then
echo success at "$Host":"$port"
else
echo failure at "$Host":"$port"
fi
done
done
UDPはステートレスであるため、テストからの戻りコードはスキャンには役立ちません。 A.Bの例 を使用して出力をキャプチャし、それが期待と一致するかどうかを確認する必要があります。