• ベストアンサー

生ログに近いアクセス解析

サイトを訪れた人の[日時][IP]を調べらいのですが、 よくあるアクセス解析CGIではHOSTの統計と時間帯の統計が別々になっています。 私は[いつ][誰が]がアクセスしたのかを記録できるアクセス解析CGIを探しています。 例えば下記の様なものが理想です。 --------------------------------------- [日時][IP又はHOST] [2005/07/23/21:09:56] [111.111.111.111] [2005/07/24/19:23:01] [222.222.222.222] [2005/07/24/23:58:22] [333.333.333.333] [2005/07/25/03:19:41] [444.444.444.444] --------------------------------------- [いつ][誰が]それさえ調べられればグラフや統計の機能は要りません。 調べるのはトップページ(index.html)のみです。 このようなアクセス解析は可能でしょうか? このような動作をするCGIをご存知でしたら教えていただけないでしょうか? よろしくお願いします。

  • gigigi
  • お礼率91% (237/260)
  • CGI
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
noname#13325
noname#13325
回答No.2

perlで書いてみました。 サーバーに保存してcgiのアドレスを htmlのimageタグに書き込んで呼び出すといいと思います。 画像は邪魔にならないように適当に1ピクセルのデータでも作って指定するといいとおもいます。 accessLog_SaveToFile("testlog.log"); で  指定したファイル名にログに書き込みますから 好きなファイル名をいれるといいです。 printoutImage("1pxsmall.jpg"); で画像を表示します。 いらないなら#でコメントにするといいです。 とりあえず3つ(jpg,gif,png)は自動で拡張子振り分けますので 違う拡張子は自分でくわえてください。 ホストも書き込むのでしたら $ENV{'REMOTE_HOST'} を$LineTextに足すといいです [日時][IP又はHOST] [2005/10/16/16:42:34][127.0.0.1] [2005/10/16/16:42:36][127.0.0.1] [2005/10/16/16:42:37][127.0.0.1] 実行するとこんな感じのが保存されます ここから下はソースコード accessLog_SaveToFile("testlog.log"); #printoutImage("zz_small.PNG"); printoutImage("zz_small.jpg"); sub accessLog_SaveToFile { # accessLog_SaveToFile($SaveFileName); my $SaveFileName; my $nowtime; my $NowText; my $LineText; my ($sec,$min,$hour,$mday,$month,$year,$wday,$stime); $SaveFileName = $_[0]; #時間を取得 $nowtime = time(); ($sec,$min,$hour,$mday,$month,$year,$wday,$stime) = localtime($nowtime); $year += 1900; $month++; $NowText = sprintf("%04d/%02d/%02d/%02d:%02d:%02d",$year,$month,$mday,$hour,$min,$sec); #書き込むデータ $LineText = "[". $NowText ."][". $ENV{'REMOTE_ADDR'} ."]\n"; # ファイルが無ければ先頭行追加 if (!(-e $SaveFileName)) { $LineText = "[日時][IP又はHOST]\n".$LineText; } # 回数を書き込みます open(TEXTFILE, '>>'.$SaveFileName); print(TEXTFILE $LineText); close(TEXTFILE); } sub ExtractFileExt { # ExtractFileExt(const FileName: string): string; my ($FileName, $FExt ,@Line); $FExt=""; $FileName = $_[0]; # ピリオドで分割 @Line = split(/\./,$FileName); if ($#Line > 0 ) { $FExt = $Line[$#Line] } return $FExt; } sub printoutImage { my $LoadFileName; my ($buf,$size ,$ext); $LoadFileName = $_[0]; if (open(IN, $LoadFileName)) { binmode(IN); binmode(STDOUT); $ext = lc ExtractFileExt($LoadFileName); print $ext; if ($ext eq 'png') { print "Content-Type: image/png\n\n"; } elsif ($ext eq 'gif') { print "Content-Type: image/gif\n\n"; } elsif (($ext eq 'jpg')||($ext eq 'jpeg')) { print "Content-Type: image/jpeg\n\n"; } while( read( IN, $buf, 1000 ) ){ print $buf; } close(IN); } }

gigigi
質問者

お礼

ご回答本当にありがとうございます。 まさかここまでしていただけるとは思わなかったので本当に心より感謝しております。 本当にうれしいです。ありがとうございます。 私の技術不足のせいか動作しないようです。 下記に私が行った手順を記しておきますので もしお時間があれば問題のある部分を訂正してもらえると助かります。 (1)ソースコードと記載してある部分より下をコピペし、先頭部に#!/usr/local/bin/perlを加えaccess.cgiと名前をつけて保存しました。 (2)空のファイルtestlog.logを作成しました。 (3)適当なJPG画像を用意しzz_small.jpgに名前を変えました。 (4)FTPで/cgi-bin/access/に access.cgi(755) testlog.log(666) zz_small.jpg(644) をアップロードしました。 (5)index.htmlのBody内に<img src="/cgi-bin/access/access.cgi"> のタグを貼り付けアップロードしました。 (6)index.htmlにアクセスしましたが画像は表示されませんでした。testlog.logも空ファイルのままです。 試しに/cgi-bin/access/access.cgiに直接アクセスすると500Errorが表示されました。使っているのはInfoseekのサーバーです。 よろしくお願いします。

その他の回答 (1)

回答No.1

dopvSTAR* ご質問の趣旨とは違ってしまうのですが 逆に高機能なもので、ソートすることによって ご希望の表示形式にすることができる無料CGIです。 ログ表示の初期設定を設定ファイルでいじれますので、 日時とIPだけにしておけば 解析画面で ログ→ログ表示 の2クリックだけで表示できます。 ほかのデータが無駄になってしまいますが、 動作が軽快なので、気にならないと思います。 ファイル数が多いですが、設置はそう難しくないと思います。

参考URL:
http://tech.bayashi.net/
gigigi
質問者

お礼

ご回答ありがとうございます。 なかなか自分では見つけれなかったので助かります。

関連するQ&A

  • アクセス解析CGIがうまく動きません。

    http://www.futomi.com/index.html こちらのサイトにある「高機能アクセス解析 CGI」 というCGIを利用させてもらおうと思ったのですが うまく動かなくて困っています。 Q&AやHPレンタルスペース別の設置方法も 試したのですがどうやら動いていないようなので困っています。 解析結果のページはちゃんと表示されるのですが 「概要」の一番下にある「解析対象期間」が 最初に設置をした日時から動いていないのが謎です。 お手数ですが教えていただけたらうれしいです。 よろしくおねがいします。

  • perl オリジナルのアクセス解析を作成したい

    Perlを使ってアクセス解析のCGIを作成したいのですが、参考になるサイト等ありましたら教えてください。 理想としては、メインのindex.htmlのページの中にこっそりとCGIプログラムを呼び出すjavaScriptを仕込んでおこうかと思っているのですが、可能でしょうか。

    • ベストアンサー
    • CGI
  • アクセス解析が動いているか分かりません。。。

    自分でアクセス解析を設置したのですが・・・ 自分のサイトは訪問者がとても少ないので、動いているのか見分けがつかなくて困ってます。 アクセス解析のカウンターの画像がしっくりこなくて、とっかえひっかえして、自分のせいで大量に回ってしまったので、カウンターの数字を元に戻して以来、自分以外の訪問者を記録していないようなのです・・・ 管理者=自分しか記録しないというバグなんてありますか??? 私以外誰も来ないだけでしょうか・・・? CGIはat worksさんのaccess cgi ver.4.14です。

    • ベストアンサー
    • CGI
  • アクセスログの様なCGI

    訪問者のIPと日時を順次記録し溜めていくCGIを探しています。 ご存知の方いらっしゃいましたら教えていただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • アクセスログ解析ソフトについて

     社内のWEBサーバで、各コンテンツページの アクセスログ(アクセス数)の一覧表示をフリーの CGI(KENT WEBさんのLime Counter)を利用して 実施していますが、ファイルロック機能が効かない(symlink関数がWindows2000serverだと使えない) ので、同時アクセス時にログが複数できて カウンタ数値が少ない方の値に減ってしまうという 事象があり、こちらでは使えません。 他の、アクセスログ一覧(コンテンツカウンタ表示) ができるようなCGIやASP(できればフリー) のものか市販ソフトでWEB上で各ページのアクセス数をグラフ等で表示ができ、設定が難しくないもの 等、代替のものを探しております。 なお、CGIについては、Lime Counterのように TOPページのリンク先に、CGIタグを埋め込む 方法を使うものでないと駄目なのです。 各コンテンツは各々担当で作成しておりますので CGIタグを各ページに入れる方法だと、管理が 難しくなるので、事務局として一括でTOPページ にCGIタグを入れて、TOPページからのリンク 先コンテンツの個別アクセス数を表示したいのです。 どれがいいでしょうか?(市販ソフト又はCGI等) 教えてください

  • アクセス解析 フレーム SSI .htaccess

    CGIでアクセス解析を作りました。 SSIが使えないので、メニューフレームをCGIで作りました。 しかし、リファラが全てindex.htmlになってしまいます。 これではアクセス解析の意味がありません。 うちのサーバーは .htaccess SSI が使えません。 アドレスをindex.cgiに変えてしまうのはなるべくなら避けたいです。 どうすればきちんとリファラがとれますか?

    • 締切済み
    • CGI
  • ユニークアクセスのわかるアクセス解析

    サイトのオーナーですが、アクセス解析CGIを探しております。 希望のものとしては、 1)ユニークアクセスが表示できるもの(例:1日に同じ人が10回アクセスしても1回と表示される機能) 2)グラフ表示 3)リンク元表示 4)生ログ閲覧 5)バナー貼り付け義務のないもの 6)できれば無料 7)その他 です。 現在、利用しているのは、CGIBOYのもので、機能的に満足しているのですが、バナーをトップページに貼り付けなくてはならず、サイトの美観を損ねるのではずしたいと思っています。

    • 締切済み
    • CGI
  • アクセス解析はどこまでわかりますか?

    サイトにアクセス解析をつけているところが多いですが、それで、IPアドレスがわかったり、どのページを見たとかがわかるようですが ・トップページにのみアクセス解析がついている場合でも他のページの事までわかるのでしょうか? ・たとえば、コピーしたり、名前を付けて保存などの作業をしてもわかるのでしょうか? ・オフライン作業にしていてもアクセス解析は有効なのでしょうか? 初歩的な質問ですが、わかる方 どうぞ教えて下さい。

  • アクセス解析でカウントされないアクセスとは?

    アクセス解析をホームページに設置していますが、明らかにアクセスされた日時に、そのアクセスがカウントされていないことがあります。 (例:HP上の「書き込み日時の分かる書き込み」に対し、アクセス解析を試みるも、全くカウント記録がない など) ちなみに現在利用しているアクセス解析サービスは機能しています。 しっかりとカウントされているものもあります。 どうも、カウントされるものとされないものがあるようなので、今回、この場をお借りして、「カウントされないもの」について質問をさせて頂くことにしました。 早速ですが、「カウントされない」とは一体どういうことなのでしょうか。 カウントされないように透明人間のようになってアクセスすることが可能ということなのでしょうか。 (自分のアクセスを自分が設置したアクセス解析でカウントしないように設定できることは知っていますが、「カウントされないアクセス」はまさにこれと同様のアクセスであるように思います。) それとも、アクセス解析にも限界があり、一般的なアクセスであっても、アクセスできない場合が存在するということなのでしょうか。 どなたか、ご助言宜しくお願い致します。

  • フリーアクセス解析を紹介してください

    アクセス解析CGIを自分のサーバで動作させたいのですが、 フリーの検索してもややこしくて、 手間かかってしょうがないので、 ActivePerlで動く、 とっても使いやすいアクセス解析CGIを紹介して下さい。

    • ベストアンサー
    • CGI

専門家に質問してみよう