apacheで名前ベースのVirtualHost設定したときとかにperlあたりで楽に確認する方法ないかなーと思ってた。さすがにいちいちtelnetするのは古臭い。ってか面倒。
$ telnet example.com 80 GET / HTTP/1.1 host: vhost1.example.com
たぶん一番てっとり早いのはlwp-request?
$ GET example.com -H 'host: vhost1.example.com'
これでも良かったんですけど、せっかくなので純粋*1にperlだけでどうやるのか調べた。perldocでHTTP::RequestとかLWP辺りを見るとサンプル載ってるのですぐできますね。便利。
#!/usr/bin/perl -w use strict; use LWP::UserAgent; my $server = shift; my $host = shift; my $ua = LWP::UserAgent->new; $ua->timeout(5); $ua->default_headers->push_header('host' => "$host"); my $response = $ua->get("$server"); print $response->status_line . "\n\n" ; print $response->content ;
レスポンスコードとソース一緒に表示しても、意味ないけどまぁいいや。