2003年11月02日

update ping の送信

[カテゴリ: RIMNETでの問題点 MovableType関連 ]

RIMNET の Webサーバ経由で、外の Webサーバに接続することはできないように設定されているので、trackback ping や update ping を他のサイトに投げることができません。

一方、RIMNET の shell ホストからは、外の Webサーバが見えるので、他のサイトに http プロトコルで POST や GET を投げることができます。ということは、shell ホスト側から定期的に webサーバのファイルの更新状況をポーリングし、更新されているのを検知したら、shell サーバから update ping を他のサイトに投げる、という方法が使えるのではないか、ということで、試しにやってみました。

shell ホストから webサーバ上のファイルのタイムスタンプを取得するには、ftp で接続して、ls -l するのが確実です。http 接続では、HEAD リクエストで返ってくる LastModified: は常に現在時刻を示しているため、使い物になりません。WWWC と同じ方法を使えば、ファイルの更新時刻(タイムスタンプ)を取得できるのですが、今から全部のファイル(1000ファイル以上)に SSI を埋め込むのは大変です(Movable Type で管理しているファイルだけなら、template 修正 + rebuild で OK なんですけどね)。

とりあえず、あんまり複雑なことをしても何なので、RSS ファイル自動生成プログラムが動くときに、ついでに update ping を投げるようにしてみました。

update ping を投げるプログラムは C で書きました。何かの参考になるかもしれないので、ソースを公開しておきます。

使い方は

httpPost -f RSSファイル pingの送信先URL

のような感じになります。RSSファイルは UTF-8 であることを前提にしています。必要に応じてソースを書き換えて使ってください。

ソースは、UNIX でも Windows でもコンパイルできるように書きました。 もし、Windows 用の実行形式が欲しい人がいましたら、メールしてください。Windows の場合は、winsock2 が必要です。Windows 95 でも winsock2 を入れれば、動きます(が、winsock2 [英語版]を入れると、いろんな副作用を抑えるのが手間で、結構大変です)

feeds.bulknews.net および ping.bloggers.jp に対し、テスト中に変なpingが何回か出ていきました。申し訳ありません。

投稿者: tsupo 投稿時刻: 2003年11月02日 16:08
コメント

私もRIMNETなんですが、独自ドメインが取りたくてマイサーバXPで契約しているからでしょうか、特に困ったことが無かったので気づきませんでした。
http://www.misia-cafe.com/mt/archives/000156.html

投稿者: なす 投稿時刻: 2003年11月28日 12:18

たぶん、マイサーバなら大丈夫だと思います。

昔、RINMET の web サーバが SunOS で動いていた頃は、disk quota を除き、ほとんど制限がなかったんですが(実行時間制限も60秒だったし)、ここ数年でどんどん制限が増えてきています。

自分で書いた C プログラムを動かせるプロバイダーって、なかなかないので、RIMNET を使い続けてるんですが。URL を変えたくないというのもあって、RIMNET のままです。

とりあえず、現状でどこまでいけるか、もうちょっとあがいてみます。

せめて、他の Web サーバへの socket接続くらい、認めてくれてもいいのに。この制限のせいで、Webサービスとの連携が不可能なのが悲しいです。

投稿者: tsupo 投稿時刻: 2003年11月28日 18:07
コメントを投稿する
コメント投稿時に Internal Server Error と表示されることがありますが、ほとんどの場合、コメントの投稿はうまくいっています。このエラーが出たときは無視してください。









名前、アドレスを登録しますか?








Access Count:
Last Modified: Friday, 18-Apr-2008 05:28:37 JST

Google