10月 152012
 

ウェブの作成に携わっていると「アクセスカウンタ欲しい。」とか思うことが多々あるとおもいます。で、このブログにも右上にあるんですけどもね。このブログのカウンタは wwwcount というのを利用しています。 FreeBSD の ports では www/wwwcount になりますが、 ports からインストールされるバージョンは 2.5 なんですね。けど、ウェブページを見に行くと 2.6 が存在しているようです。

そもそも wwwcount の IPv6 対応パッチとはなんぞや? ということになるのですが、 wwwcount では同一アドレスから連続してアクセスがあったときにはカウントをアップしないという機能があります。要はリロードしてもカウントがアップしない機能ということになるんですけども。

で、その処理をするために data/count.dat ファイル内にカウンタ数と直前にアクセスがあった IP アドレスを保持しています。直前にアクセスがあった IP アドレスは IPv4 にしか対応してないんですね。それもそのはず。カウンタ数と IP アドレスの区切り文字が “:” だからなんですね。アタタタ。orz。

直前にアクセスのあった IP アドレスが IPv6 アドレスの場合、正しく動作しないのでリロードするとカウンタがどんどん上がっていくのが今のところの仕様です。なので、IPv6 に対応したパッチを書きました。以下の URL に置いときます。

http://icmpv6.org/Prog/wwwcount2.6-IPv6.patch.gz

このパッチを適用するとカウンタ数と IP アドレスの区切り文字が “;” になるので IPv6 でアクセスがあった場合でもリロードでカウントアップするのが防げます。

上にも書きましたが FreeBSD の ports の wwwcount は 2.5 です。このパッチは 2.6 用です。ソースから make してください;-)。