アクセスログ


アクセスログについて

  • タローのページには、アクセスカウンタCGIと、アクセス解析のためログを取るCGIを埋め込んでいます。通常は上部のアクセスカウンタしか見えてません。下部に埋め込んでいある部分は、フレーム枠を動かすと以下の様に見えます。

    アクセスログ解析

アクセスログの埋め込み

  • 上記のタローのページには、以下の様に埋め込んでいます。

    【index.htm】
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
    <HTML>
    <HEAD>
    <TITLE>名犬?タローのページ</TITLE>
    </HEAD>
    
    <FRAMESET ROWS="100%,*,*">
    	<FRAME SRC="main.htm">
    	<!--アクセスカウント/解析用 2000年2月26日追加-->
    	<FRAME SRC="access.htm">
    	<FRAME SRC="cgi/accesslog3.cgi">
    </FRAMESET>
    
    <NOFRAMES>
    <BODY>
    名犬?タローのページへようこそ。ポメラニアンのタローのストリーミングビデオと写真を中心としたページです。<BR>
    このページはフレームを使用しています。<BR>
    この文章が見えた方は<A HREF="count.cgi">ここをクリックしてください。</A>
    <P>
    </BODY>
    </NOFRAMES>
    </HTML>
    

CGIの説明

  • アクセスカウンタ

    ここで使っているカウンタCGIは、Kent Webさんのフリーのスクリプトです。詳細は以下のページを参照下さい。このCGIは、ブラウザからカウンタの追加やカウンタ値の設定が行えるので便利です。尚、タローの日本語ページと英語ページから同じカウンタをカウントアップしています。また、実験室、Linux、FreeBSDのページのカウンタもこのCGIで別idを設定して使っています。
    Dream Counter

    【main.htm】
    (途中略)
    
    アクセス#
    <img src="./cgi/count/dream.cgi?id=taro"> 
    (Since H8.11.8)
    
    (以下省略)
    


  • アクセス解析

    ここで使っているCGIは、Kent Webさんのフリーのスクリプトです。詳細は以下のページを参照下さい。
    Access Repport
    Day Counter-EX

    【access.htm】
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <TITLE>アクセスカウンタ/アクセス統計</TITLE>
    </HEAD>
    
    <BODY>
    <!--アクセス解析用JavaScript-->
    <SCRIPT Language="JavaScript">
                   <!--
                   document.write("<img src='cgi/report/report.cgi?");
                   document.write(parent.document.referrer+"' width=1 height=1>");
                   // -->
                   </SCRIPT>
    
    <!--アクセスカウント-->
    【カウント累計<img src="cgi/dayx/dayx.cgi?gif">
    (本日<img src="cgi/dayx/dayx.cgi?today">昨日<img src="cgi/dayx/dayx.cgi?yes">)
    <A HREF="cgi/dayx/dayxmgr.cgi" TARGET="_blank">統計</A>】
    <!--アクセス解析-->
      【<A HREF="cgi/report/replist.cgi" TARGET="_blank">アクセス解析</A>】<BR>
    
    </BODY>
    </HTML>
    


  • ブラウザ統計

    以下の書籍を参考にしました。
    CGIプログラミング入門(秋本祥一他、翔泳社)8.4章DMB

    【cgi/accesslog3.cgi】
    #!/usr/local/bin/perl
    
    $agent = 'agent';
    $referer = 'referer';
    $host = 'host';
    
    dbmopen(%AGENT,$agent,0666);
    $AGENT{$ENV{'HTTP_USER_AGENT'}}++;
    dbmclose(%AGENT);
    
    dbmopen(%REFERER,$referer,0666);
    $REFERER{$ENV{'HTTP_REFERER'}}++;
    dbmclose(%REFERER);
    
    print <<EOH;
    Content-type: text/html
    
    <HTML>
    <HEAD>
    <TITLE>Access Log</TITLE>
    </HEAD>
    <BODY>
    <A HREF="./stat4.cgi" TARGET="_blank">ブラウザ統計</A><BR>
    </BODY>
    </HTML>
    EOH
    


    【cgi/stat4.cgi】
    #!/usr/local/bin/perl
    
    $agent = 'agent';
    
    print <<EOH;
    Content-type: text/html
    
    <HTML>
    <HEAD>
    <TITLE>Access stat</TITLE>
    </HEAD>
    <BODY>
    <H2>アクセス統計</H2>
    「名犬?タローのページ」のアクセスに使われたブラウザの統計です。
    EOH
    
    &printTable($agent,'ブラウザ名');
    
    print <<EOH;
    
    </BODY>
    </HTML>
    EOH
    
    sub printTable {
    	local($db,$table_header) = @_;
    
    	print <<EOH;
    <TABLE BORDER>
    <TR><TH>$table_header</TH><TH>数</TH></TR>
    EOH
    
    	dbmopen(%DB,$db,0666);
    	foreach (sort by_number keys(%DB)) {
    		print "<TR><TD>$_</TD><TD ALIGN=\"right\">$DB{$_}</TD></TR>\n";
    	}
    	dbmclose(%DB);
    
    	print <<EOH;
    </TABLE>
    <P>
    EOH
    }
    
    sub by_number {
    	if ($DB{$b} != $DB{$a}) {
    		$DB{$b} <=> $DB{$a};
    	}else{
    		$a cmp $b;
    	}
    }
    



HOWTOへもどる


Copyright (c) 2003 Hiroshi Nakamura. All rights reserved.