• ベストアンサー

外部サーバーのページの最終更新日時を表示させたい

今まで、自分のサイト・サーバー内の日記(自家CGI)の、最新記事だけトップページにSSIで表示していました。 今度、日記にブログ(外部サーバー)を取り入れたのですが、それがいつ更新されたのかを自分のサイトのトップページに表示させる方法はありますでしょうか? SSIは外部サーバーの為勿論使えませんよね・・・。 このカテゴリであっているのかわかりませんが、よろしくオネガイシマス。m(ーvー)m

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

  • ベストアンサー
noname#25358
noname#25358
回答No.2

 えとですね……。 --------------------------○ #!/usr/local/bin/perl $host = 'www.provider.com'; $path = '/~account/index.htm'; use Socket; $address = inet_aton($host) || return -1; $sockaddress = sockaddr_in(80, $address); socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || return -1; connect( SOCK, $sockaddress ) || return -1; binmode(SOCK); select(SOCK); $| = 1; select(STDOUT); print SOCK "HEAD $path HTTP/1.0\r\n"; print SOCK "Host: $host\r\n"; print SOCK "Connection: close\r\n"; print SOCK "\r\n"; @head = <SOCK>; close(SOCK); map{if(/^date:\s*([^\r\n]+)[\r\n]*$/i){print $1;}}@head; print '&nbsp;'; exit; --------------------------○  このプログラムを hizuke.cgi とかファイルに保存して、パーミッションを 755 にして、あとはSSIとして呼び出せばOKのはずです。  でも巧く動かなかったらあしからず(^_^;

asrun
質問者

お礼

追記ありがとうございます! がんばってみたのですが、InternalServerErrorから抜け出せませんでした(汗 ですが、BlogのRDFファイルの更新状況を表示できるプログラムを見つけまして、なんとか質問の希望のことはできるようになりました! わざわざプログラム書いていただいたのに申し訳ありません、ありがとうございました。 また何かありましたらお願いします。

その他の回答 (1)

noname#25358
noname#25358
回答No.1

 SSIでやる方法はあるにはありますが……。  ソケット開いて HTTP プロトコルの HEAD メソッドを発行するとか、そういう方法です。  ……分かります?(^_^; --------------------------○ $host = 'www.provider.com'; $path = '/~account/index.htm'; use Socket; $address = inet_aton($host) || return -1; $sockaddress = sockaddr_in(80, $address); socket( SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')) || return -1; connect( SOCK, $sockaddress ) || return -1; binmode(SOCK); select(SOCK); $| = 1; select(STDOUT); print SOCK "HEAD $path HTTP/1.0\r\n"; print SOCK "Host: $host\r\n"; print SOCK "Connection: close\r\n"; print SOCK "\r\n"; @head = <SOCK>; close(SOCK); --------------------------○  多分これでイケるんじゃないかなーとか思っちゃったりしますが(^_^;  $host と $path に取得したいURLに関する情報をセットすると、最後の @head の中に、相手先の更新日付とかそういうのがHTTP形式で戻ってくるハズ。  ハズ、ハズ(^_^;  動かなかったらデバッグは自分でやってください(笑)

asrun
質問者

補足

さっそくのご回答ありがとうございます! ところで、これは*.cgi等のファイルにすればいいのでしょうか? そしてそのCGIをSSIで読み込めば更新日時が表示されるのでしょうか? 半分わかったようなわかんないような…ド素人ですみませんが、よろしくおねがいします(>x<;)

関連するQ&A