質問箱/2146

カテゴリ
サマリ編集者のIPを取りたい
バージョン1.4.3
投稿者TOMON?
状態完了
投稿日2004-05-06 (THU) 22:21:16

質問

嵐が多くて困っています。 ページを編集した人のIPを記録するには どうすればよいでしょうか。

回答

  • reimy 2004-05-07 (FRI) 06:32:11

    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を記録することができます。
  • TOMON? 2004-05-08 (SAT) 11:48:10

    file.phpの改造の仕方もお願い致します。

  • 名無しさん 2004-05-08 (SAT) 20:48:00

    どのような形でファイル出力したいのかによって、改造の仕方はいくらでもあります。

    --- 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'に対しては閲覧・編集制限を加えて おくと良いでしょう。

一応、例として書いてみましたが、使い勝手やプライバシポリシー等、よく考えてからやるべきです。

  • TAMON? 2004-05-09 (SUN) 15:10:27

    txtファイルに出力したいのですが、どうすればよいのでしょうか。

  • TOMON? 2004-05-09 (SUN) 15:37:47

    txtへの出力は自力でできました。

    • reimy 2004-05-09 (SUN) 16:36:28

      .htaccessで

      Order allow,deny
      Deny from all
      を忘れずに。
  • TOMON? 2004-05-09 (SUN) 15:38:26

    もう1つ質問ですが、ホストは取得できないのでしょうか。

  • 名無しさん 2004-05-09 (SUN) 16:12:19

    もちろん出来る筈です。REMOTE_HOSTが取れないサーバ設定であっても、gethostbyaddrでREMOTE_ADDRから生成すれば良いでしょう。

    もはやPukiWikiの質問ではありませんね。

  • TAMON? 2004-05-09 (SUN) 23:06:24

    皆さんありがとうございました。無事解決しました。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-11-22 (月) 19:27:46
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u2. HTML convert time: 0.820 sec.

OSDN