以下からzipファイルをダウンロードしようとしています。https://download.sysinternals.com/files/ProcessExplorer.zip(カーリングとWGETなし)。 netcatでこれをやりたいです。次のコマンドを使用しました。
echo -e "GET
https://download.sysinternals.com/files/ProcessExplorer.zip HTTP/1.1\r\nHost: download.sysinternals.com\r\n\r\n" | nc download.sysinternals.com 80 > q.zip
ファイルがハードドライブに書き込まれていますが、開こうとすると破損しています。
答え1
私が知っているnetcat
限り、HTTPSは利用できませんが、コードではHTTPSではなくHTTPを意味するポート80に接続しています。
次に、GET
完全なアドレスではなく相対アドレスを追加する必要があります。
次のように動作します。
echo -e "GET /files/ProcessExplorer.zip HTTP/1.1\r\nHost: download.sysinternals.com\r\n\r\n" | nc download.sysinternals.com 80 > q.temp
転送が完了しても閉じられず、手動で閉じてください。
この時点で、q.temp
ファイルには削除する必要があるHTTPヘッダーも含まれています。バイナリの内容が始まる行番号を確認できます。
nl q.temp | less
この場合、バイナリの内容は16行目で始まるため、次のようにヘッダーを削除できます。
tail -n +16 q.temp > q.zip
これはzipファイルです!