次のコマンドを使用して、マイコンピュータでポートスキャンを実行します。
nc -zv 192.168.1.1 1-100
しかし、次の出力では成功したメッセージだけをフィルタリングしたいと思います。だから私は次のコマンドを使用しました。
nc -zv 192.168.1.1 1-100|grep succeeded
しかし、うまくいかず、まだ出力全体が表示されます。
nc: connect to 192.168.1.1 port 1 (tcp) failed: Connection refused
nc: connect to 192.168.1.1 port 2 (tcp) failed: Connection refused
nc: connect to 192.168.1.1 port 3 (tcp) failed: Connection refused
nc: connect to 192.168.1.1 port 4 (tcp) failed: Connection refused
nc: connect to 192.168.1.1 port 5 (tcp) failed: Connection refused
nc: connect to 192.168.1.1 port 6 (tcp) failed: Connection refused
nc: connect to 192.168.1.1 port 7 (tcp) failed: Connection refused
nc: connect to 192.168.1.1 port 8 (tcp) failed: Connection refused
nc: connect to 192.168.1.1 port 9 (tcp) failed: Connection refused
答え1
コマンドを次に変更します。
nc -zv 192.168.1.1 1-100 2>&1 | grep succeeded
2>&1
stderr
プログラムが原因と同じファイル記述子に書き込まれていますstdout
。デフォルトnc
では、 を作成するとstderr
パイプはインポートするだけなので、stdout
grep はデータを失います。
詳細については、ここのセクション3.5を参照してください。リダイレクトに関するすべて。