/dev/tcpが見つかりません

/dev/tcpが見つかりません

次のコマンドを実行しようとすると:

echo -e "GET / HTTP/1.1\n\n" | /dev/tcp/74.125.225.19/80

次のエラーメッセージが表示されます。

bash: /dev/tcp/74.125.225.19/80: No such file or directory

次のコマンドは完全に機能するため、質問は使用方法に関連しています/dev/tcp

echo -e "GET / HTTP/1.1\n\n" | nc 74.125.225.19 80

Ubuntu 13.04を使用しているので、機能はしなければならない私のシステムに。私は何が間違っていましたか?正しい使用のための規則は何ですか/dev/tcp

ベストアンサー1

あなたはそれを使用する必要がありますリダイレクト:

Bashは、次の表に示すように、リダイレクトで複数のファイル名を使用するときに特に複数のファイル名を処理します。

...

/dev/tcp/ホスト/ポート

ホストが有効なホスト名またはインターネットアドレスで、ポートが整数のポート番号またはサービス名の場合、BashはそのTCPソケットを開こうとします。

だから:

printf "GET / HTTP/1.1\n\n" > /dev/tcp/74.125.225.19/80

正しい使い方です。

/dev/tcp/74.125.225.19/80パイプラインで使用するときにbash名前付きコマンドを実行し/dev/tcp/74.125.225.19/80、ファイルが存在しないのでエラーを報告してください。


/dev/tcp/host/portバージョン2.04には処理とリダイレクト機能が追加されました。/dev/udp/host/portbash

bashオプションを使用してコンパイルする必要があります--enable-net-redirections

おすすめ記事