• ベストアンサー

HTMLページの最終アクセス者(IP)の取得方法

perlについてどなたかご教授頂けないでしょうか。 perlでホームページ(管理用のページ)を作成していて、 『index.html』というページが、最後にアクセスされた時間(最終アクセス日時) を取得する方法は分かるのですが、HTMLファイルに最後にアクセスした人(IPアドレス) を取得する事は可能でしょうか?可能でしたら記述を教えて下さい。 ご存知の方いらっしゃいましたらご教授下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

htmlから「何らかの方法で」CGIを呼び出しているんですよね?どういう手法を使われてますでしょうか?環境変数のREMOTE_ADDRを参照するのですが、カウンタCGIのようにブラウザから呼び出してもらう必要があります。 このあたりはフリーで配布されている「アクセス解析のCGI」のソースを読めば、すぐにわかると思います。

その他の回答 (1)

  • urakids
  • ベストアンサー率77% (7/9)
回答No.2

下記のcgiをindex.htmlに <img src=ac_log.cgi>等IMGタグで 読み込ませれば時間とアクセスIPが取れますがどうでしょう? #ac_log.cgi ############################################################ #!/usr/bin/perl use strict; use warnings; my (@TIME, $access_log); (@TIME) = localtime(time); $access_log = (1900+$TIME[5]) . "/"; #年 $access_log .= ($TIME[4]+1) . "/"; #月 $access_log .= $TIME[3] . " "; #日 $access_log .= $TIME[2] . ":"; #時 $access_log .= $TIME[1] . ":"; #分 $access_log .= $TIME[0]; #秒 $access_log .= "\t" . $ENV{REMOTE_ADDR} . "\n"; #IP #ファイルに追記 open(FILE, ">>./access.log") or die; eval{flock(FILE,2);}; print FILE $access_log; close(FILE); #画像読み込み open(IMG, "image.gif") or die; eval{flock(FILE,1);}; print "Content-type: image/gif\n\n"; binmode(IMG); print <IMG>; close(IMG); exit; ############################################################

関連するQ&A