Skip to main content

ログ取得ツール

PHP/curl

いま(このサイトじゃないけど)PHP-4.2.2とcurl-7.10.4を使っているが、以下のようにしてもIf-Modified-Sinceヘッダもつかないし、戻ってくるLast-Modifiedヘッダを処理してくれない。なぜか。よくわからん。$mtimeに数字を入れておけばHTTPのIf-Modified-Sinceが送られ、$modifにLast-Modifiedの文字列をパースした値が入るのではないのか!?


    $tmpfile=tmpfile();
    $c=curl_init();
    curl_setopt($c, CURLOPT_URL, $url);
    curl_setopt($c, CURLOPT_FILE, $tmpfile);
    curl_setopt($c, CURLOPT_HEADER, 0);
    if($mtime){
      curl_setopt($c, CURLOPT_TIMECONDITION, TIMECOND_IFMODSINCE);
      curl_setopt($c, CURLOPT_TIMEVALUE, $mtime);
    }
    $r=curl_exec($c);
    $rcode=curl_getinfo($c, CURLINFO_HTTP_CODE);
    $modif=curl_getinfo($c, CURLINFO_FILETIME);
    $size=curl_getinfo($c, CURLINFO_SIZE_DOWNLOAD);
    curl_close($c);
    fclose($tmpfile);

Cで書くとうまくいくなぁ。


#include <stdio.h>
#include <curl.h>

int main(int argc, char **argv)
{
  CURL *c=curl_easy_init();
  curl_easy_setopt(c, CURLOPT_URL, "http://localhost:9999/");
  curl_easy_setopt(c, CURLOPT_HEADER, 0);
  curl_easy_setopt(c, CURLOPT_TIMECONDITION, TIMECOND_IFMODSINCE);
  curl_easy_setopt(c, CURLOPT_TIMEVALUE, 1061276136);
  curl_easy_perform(c);
  curl_easy_cleanup(c);
  return 0;
}

結果は以下の通り。ちゃんとIf-Modified-Sinceヘッダがついているのがわかる。


# socket -s 9999
GET / HTTP/1.1
Host: localhost:9999
Pragma: no-cache
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
If-Modified-Since: Tue, 19 Aug 2003 06:55:36 GMT

(追記) 2003-09-29 15:05 Pythonでもうまくいった。…PHPのソースを見たら、TIMECOND_IFMODSINCEが定義されていなかった。ヘッダを見ると値が1だったので、

RSSの問題

トップページのRSSだが、「Tom’s Hardware Guide(tomshardware.com)」と「はてな系」が遅いことがわかった。Tom’sに関しては取得(?)に20秒以上かかる。はてなも10秒くらいは普通にかかる。独自生成だからかとも思ったが、http://rss-jp.net/x/hatena.cgi(rss-jp.net)もhttp://antipop.zapto.org/hatena/rss/hatena_rss.php(zapto.org)もやはり遅い。 しょうがないので2時間ごとに強制的に全部のRSSをリフレッシュすることにした。生成に失敗したものは赤っぽく表示される。一度失敗して20分くらい経ってからURLのほう(XMLじゃなくて)にアクセスしてみると、うまくいけばキャッシュが生成されて見えるようになるだろう。ならない場合もあるが。普通にアクセスするとタイムアウトが5秒なので、生成に失敗することも多いことだろう。 PHPのgettimeofdayはけっこうしっかりしているなぁ。

すばらしい美談

米国には秘策(yahoo.co.jp)があった。気合い入ってる。業界全体を潰しにかかっているのかもしれない。 記事でも触れられているが、SPAMに対しても同じことをしてほしい。まあ海外からのSPAMには効かないので、同じ手法でうまくいくかどうかわからないけど。

脳が揺れる日本

いま、こないだのフラフラのサップの頭の上に乗っているかのように揺れた。たぶん地震。 (追記) 2003-08-18 19:18 ここ(adep.or.jp)によれば、M4.7、震源の深さは70km、震源地は千葉県北西部とのこと。 このへんの震度は2〜3くらいかな。 (追記) 2003-08-18 19:34 高感度地震観測網(bosai.go.jp)がわかりやすいかも。 気象庁(jma.go.jp)も。あと tenki.jp(tenki.jp)も。 ERI地震情報(u-tokyo.ac.jp)が遅くて。使えなくて。 (追記) 2003-08-19 26:01 わかりにくいかも。一応このタイトルは石原慎太郎の「Noと言える日本」がオリジナルなんだけどねぇ。あからさまに書いておかないと後で読んでもわからない可能性が。…別にわかんなくても実害はないけど。

アップデートツールはどこまで面倒を見るべきか?

こんな話(cnet.com)が出ていた。要約すると、WindowsUpdateはレジストリしか見ないので真にファイルが最新かどうかは分からないよね、ということ。 アップデートツールはどこまで面倒を見るべきなのだろうか。rpm -yやrpmverifyのようにそれぞれのファイルがインストールした状態のパッケージと同一かどうかをチェックすれば満足か? Linuxでも自動アップデートだとここまでチェックしてないツールしかないように思う。いずれはそこまで面倒を見る必要があるのかもしれない。