pukiwiki のアクセスカウンタ counter について

指定ページにアクセスしてる人全員を洗い出したくて、ちょっと覗いた。

最初に結論

  • 最後にアクセスした人の IP アドレスしかわからない
  • アクセスした人全員のを知りたいならプラグインのソース書き換えて実装して

counter って何だっけ?

指定ページのアクセス数を表示するプラグイン

使い方は、設定したいページに #counter を書く。書いたらページ末尾に Counter: XXX, today: YYY, yesterday: ZZZ みたいな行が表示されるようになる。

カウンタの性質

  • IPアドレスによるユニークカウンタ
  • yesterday カウンタは不具合があって動作しない?(常に0)

IPアドレスレベルで誰が見たかとかわからないかね?

とりあえず最終アクセス者ならわかる

(PUKIWIKI_ROOT)\counter(PAGENAME).count を見たらわかる。フォーマットはこう。

(TOTAL-ACCESS: int)
(LAST-VISITED-DATE: string YY/MM/DD)
(TODAY-ACCESS: int)
(YESTERDAY-ACCESS: int)
(LAST-VISITED-IPADDR: string aaa.bbb.ccc.ddd)

ただし PAGENAME はエンコードされているので人間には読めない。キーワードで GREP して探すなど工夫が必要。

プラグインのソース見てみる

(PUKIWIKI_ROOT)\plugin\counter.inc.php が counter プラグインのソースと思われる。

$fp = fopen($file, file_exists($file) ? 'r+' : 'w+') ← こんな感じで直接ファイルに書き込んでいる。IPアドレスについては最終アクセス者の分しか記録してない。

つまりアクセス者全員を知りたいなら、ここを書き換えることになる。