カテゴリ | |
---|---|
サマリ | 編集者のIPを取りたい |
バージョン | 1.4.3 |
投稿者 | TOMON |
状態 | 完了 |
投稿日 | 2004-05-06 (THU) 22:21:16 |
嵐が多くて困っています。 ページを編集した人のIPを記録するには どうすればよいでしょうか。
init.phpで
// 初期設定 (サーバ変数) foreach (array('HTTP_USER_AGENT','PHP_SELF','SERVER_NAME','SERVER_SOFTWARE','SERVER_ADMIN','REMOTE_ADDR') as $key) { define($key,array_key_exists($key,$_SERVER) ? $_SERVER[$key] : ''); }というようにREMOTE_ADDRを追加し、file.phpのfunction page_writeの中で、REMOTE_ADDRの内容をファイル出力するように改造すれば、書き込みをした人のIPを記録することができます。
file.phpの改造の仕方もお願い致します。
どのような形でファイル出力したいのかによって、改造の仕方はいくらでもあります。
--- file.php.orig Sat Mar 20 22:43:58 2004 +++ file.php Sat May 8 20:47:20 2004 @@ -54,6 +54,13 @@ // linkデータベースを更新 links_update($page); + + // REOMTE_ADDRのファイル書出し + $fp = fopen(DATA_DIR.encode('iplog').'.txt', 'a'); + flock( $fp, LOCK_EX); + fputs( $fp, '|'.date("r").'|'.REMOTE_ADDR.'|[['.$page."]]|\n"); + flock( $fp, LOCK_UN); + fclose( $fp); } // ユーザ定義ルール(ソースを置換する)
例えば、こうすればページ'iplog'に日付、REMOTE_ADDR、編集ページ名 を追記していくようになります。'iplog'に対しては閲覧・編集制限を加えて おくと良いでしょう。
一応、例として書いてみましたが、使い勝手やプライバシポリシー等、よく考えてからやるべきです。
txtファイルに出力したいのですが、どうすればよいのでしょうか。
txtへの出力は自力でできました。
.htaccessで
Order allow,deny Deny from allを忘れずに。
もう1つ質問ですが、ホストは取得できないのでしょうか。
もちろん出来る筈です。REMOTE_HOSTが取れないサーバ設定であっても、gethostbyaddrでREMOTE_ADDRから生成すれば良いでしょう。
もはやPukiWikiの質問ではありませんね。
皆さんありがとうございました。無事解決しました。