curl –resolveでコマンドラインから名前解決する

HTTP サーバに名前ベースのバーチャルホスト設定がされていて、設定されているホスト名でアクセスしたい場合は Host ヘッダーを渡せばOK

IP アドレス に のホストでアクセスするときには以下のようにする。


$ curl --header "Host:"


$ wget --header="Host:"


$ telnet
GET / HTTP/1.1

そのため hosts ファイルを書き換えて、ローカルで名前解決させて本来のホスト名でアクセスすることが多々ある。

curl は、このような用途のために --resolve オプションが用意されている。

たとえば hosts ファイルに

と書いて、 $ curl とアクセスするかわりに

$ curl --resolve


–resolve <host:port:address>

Provide a custom address for a specific host and port pair. Using this, you can make the curl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line. The port number should be the number used for the specific protocol the host will be used for. It means you need several entries if you want to provide address for the same host but different ports.

This option can be used many times to add many host names to resolve.

(Added in 7.21.3)

Added in 7.21.3 という文字が気になるけど、 7.21.3 がリリースされたのは 2010年12月なので、それなりにメンテされているシステムを触っている限りは 7.21.3 以降の curl がインストールされているハズ。




Tagged with: ,
Posted in web

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: