Skip to main content

ログ取得ツール

ついに米軍撤退!!

10月1日に米軍が撤退(sanmateocountytimes.com)するとブッシュが宣言した。無論イラクではない。アフガニスタンでもない。韓国でも日本でもない。 リベリア(mofa.go.jp)である。外務省情報(mofa.go.jp)やこのへん(rim.or.jp)やこのへん(tufs.ac.jp)が詳しいようだ。 たぶん、このニュース(yahoo.co.jp)と関係があるだろう。Y!のトピックス(yahoo.co.jp)。 …というか日本語でもロイター(yahoo.co.jp)と読売(yahoo.co.jp)が記事にしていた。国連軍のことをブルーヘルメット軍と言うんだな。「がんばれ青ヘル」とかって言うわけ?

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には効かないので、同じ手法でうまくいくかどうかわからないけど。