web-dev-qa-db-ja.com

/ dev / tcp / Host / portコマンドを使用するさまざまな方法と、このマニュアルページの場所

/ dev/tcp/Host/portコマンドを使用するさまざまな方法と、これに関するマニュアルページの場所

< /dev/tcp/www.google.com/80

cat > /dev/tcp/www.google.com/80
1
Bharat

構文の公式リファレンスについては 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の例 を使用して出力をキャプチャし、それが期待と一致するかどうかを確認する必要があります。

4
Jeff Schaller