リモート Web サーバーからファイルをダウンロードするための最適なルートはどれですか? 特定のユーザーエージェントが渡されない限り、.htaccess を使用してすべてのダウンロードを拒否したいと考えています。これは cURL 経由で行う必要がありますか、それとも WGET で行うことはできますか?
2 に答える
http://www.gnu.org/software/wget/manual/wget.html
'-U agent-string' '--user-agent=agent-string' http サーバーへのエージェント文字列として識別します。http プロトコルを使用すると、クライアントは User-Agent ヘッダー フィールドを使用して自身を識別できます。これにより、通常は統計目的またはプロトコル違反の追跡のために、www ソフトウェアを区別できます。Wget は通常 'Wget/version' として識別され、version は Wget の現在のバージョン番号です。
ただし、一部のサイトでは、ユーザー エージェントが提供する情報に従って出力を調整するポリシーを課すことが知られています。これは理論的にはそれほど悪い考えではありませんが、(歴史的に) Netscape またはより頻繁に Microsoft Internet Explorer 以外のクライアントへの情報を拒否するサーバーによって悪用されてきました。このオプションを使用すると、Wget によって発行される User-Agent 行を変更できます。自分が何をしているのか本当によくわかっていない限り、このオプションの使用はお勧めできません。
'--user-agent=""' で空のユーザー エージェントを指定すると、Wget は http 要求で User-Agent ヘッダーを送信しないように指示されます。
また、記録のために、からman curl(1)
:
-A, --user-agent <agent string>
(HTTP) Specify the User-Agent string to send to the HTTP server.
Some badly done CGIs fail if this field isn't set to
"Mozilla/4.0". To encode blanks in the string, surround the
string with single quote marks. This can also be set with the
-H, --header option of course.
If this option is used several times, the last one will be used.