プロが教えるわが家の防犯対策術!

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

A 回答 (2件)

通常、ブラウザなんかで


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時間してやらないといけません。

この回答への補足

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

補足日時:2006/01/23 21:01
    • good
    • 0

こんなもんでいかがでしょうか。


取り急ぎ

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;
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!