netcat
アクセス権がないため、特殊ファイルを使用してポートをテストしてみnmap
ました。bash
/dev/udp/
次のようにできます。
echo "" > /dev/udp/example.com/8000
ただし、UDPを使用するときは常にそうです$?
。私はこれがコマンドの戻り値0
のためであると仮定します。そうですか?echo ""
私は基本的にnmap
私ができることを複製しようとしていますnetcat
。
nmap -sU -p 8000 example.com | grep open >/dev/null && echo 'open'
nc -z -u example.com 8000 && echo 'open'
どうすればいいですか/dev/udp
?
ベストアンサー1
TCPの場合、$?
接続が失敗した場合は、$?
次の点を確認してください0
。
$ >/dev/tcp/google.com/81
bash: connect: Network is unreachable
bash: /dev/tcp/google.com/81: Network is unreachable
$ echo $?
1
bash
接続が失敗したことに気づくのに時間がかかります。あなたはそれを使用することができます停止する原因bash
:
$ timeout 1 bash -c '>/dev/tcp/google.com/80' &&
echo Port open ||
echo Port close
Port open
UDPポートテストはより複雑です。
厳密に言うとない。開いている状態(もちろんudpは無国籍プロトコル)udpを使用します。 2週間だけudpがあります。聞くまたはいいえ。状態が次の場合いいえ、あなたは得るでしょうICMPターゲットに接続できない。
残念ながら、ファイアウォールまたはルータはしばしばこれらのICMPパケットを破棄するため、UDPポートのステータスを確認できません。