• ベストアンサー

http://から始まるファイルの更新日時を取得するには

自分のサーバー内にあるファイルの最終更新日時は statを使って取得できるようですが、 http://から始まるほかのサーバーにあるファイルの 更新日時を取得するにはどうすればいいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

通常、ブラウザなんかで http://~/hogehoge.htm というようにアクセスすると、HTTPサーバーは目的のデータの中身をクライアント(ブラウザ)に返す前にヘッダを付けてきます。 ヘッダの例↓ HTTP/1.1 206 Partial Content Server: Apache Last-Modified: Sun, 01 Jan 2006 00:00:00 GMT Content-Length: 12345 で、このヘッダにLast-Modifiedという名前でその目的のデータ(ファイル)の更新日時を教えてくれていますので、これを取得すれば最終更新日を知ることができます。 但し、相手のHTTPサーバーによってはこの情報を付加していなかったり、嘘の日時情報を付加したりするので必ずしも正しい日時とは限りません。 また、タイムゾーンにも注意する必要があります。 例の場合はGMT(世界標準時刻)ですので日本時間に直すには自分で+9時間してやらないといけません。

is_may
質問者

補足

すみません、具体的なPerlでのプログラムを書いていただけませんか? よろしくお願いします。

その他の回答 (1)

回答No.2

こんなもんでいかがでしょうか。 取り急ぎ use LWP::Simple; use HTTP::Status; require LWP; require LWP::UserAgent; $ua = new LWP::UserAgent; $ua->agent("LWP::GETHEAD"); # $url = $ARGV[0]; $url = "http://www.ocn.ne.jp/"; $request = new HTTP::Request HEAD => $url; $response = $ua->request($request); print "Content-type: text/html\n\n"; print "Url=\"$url\"\, Date=\""; print $response->header('Last-Modified'); print "\"\n"; exit;

関連するQ&A