curlでIPやドメイン・ホスト名を指定する方法

Hostsに書かずにcurlでテストする方法

IPを紐づけしていないドメインでもcurlでテストする方法

外部公開していない自分のPCでサーバを構築した際にテストでexample.comなどのドメインを設定中に記述しても、example.comのIPは手元の自分のサーバのIPではなく、別のサーバのIPになっていてテストできません。

shell
# dig example.com +short
93.184.216.34

このように自分のドメインでないドメインやまだDNS設定していないドメインでもテストする方法としては

などの方法があります。

Hostsファイルはドメイン名とIPアドレスの紐づけ対応表で名前解決に利用されるファイルです。

windowsでもmacでもlinuxでもhostsファイルはあります。ここにexample.comに自分のIPを記述すればexample.comと入力すると自分のサーバIPに接続するようになります。しかし、windowsでは特にhostsファイルに記述するのはちょっと面倒で、hostsに記述した場合は後で削除しておかないと後々思わぬ不具合に遭遇することがあります。

もっと簡易的な方法としてcurlコマンドでHostとIpを指定する方法があります。

Hostsの欠点

  • 編集に管理者権限が必要
  • 都度書き換えが必要
  • 消し忘れるとIPが変更されたときに変更前のアドレスを見に行ってしまう

 curl  -H “Host:ドメイン名” IPアドレス

curl コマンドではIPやドメインを指定してその内容を取得することができます。

bash
# curl -IL google.com
# curl -IL 172.217.175.23

example.comは自分のIP xxx.xxx.xxx.xxxとしてアクセスするというようにcurl ではHostを指定することができます。

bash
# curl -IL -H "Host:example.com" 127.0.0.1
# curl -IL 172.217.175.23

webサーバのバーチャルホストなど一つのサーバ(IP)に複数のドメインを設定する場合はドメインごとにアクションが変わるのでこのようにテストしたい場面があると思います。

hostsに書かなくてもテストできるので便利です。curlコマンドは他にもいろいろなオプションや使い方があるのでマスターしておきたいところです。

コメントを残す

メールアドレスが公開されることはありません。