#!/usr/bin/perl ################################################################# ## 1.May,1999 ## Prograbbed by Sei Kawahara ## kawasei@muc.biglobe.ne.jp ## http://www2c.biglobe.ne.jp/~kawahara/ ## Ver.9902_1.04 ## 非営利や個人HPでの使用は、改造含めfree。 ## 連絡なしの再配布は厳禁です。 ## また、ご使用の際の不具合についての当方の責任はご容赦願います。 ################################################################## # アクセスログファイル名 $logfile = 'aclog.txt'; # カウントファイル名 $countfile = 'count.dat'; # ログ件数の最大数指定(あなたのお好みの値にして下さい。ただし、stat_log.cgiと同値です。) $maxlog = 1000; # ホ−ムアドレス(あんたのアドレスにして下さい。) $home ='http://www.familysugar.com/~tak/'; # 日付けの取得 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $mon++; $year=$year+1900; if ($sec < 10) { $sec = "0$sec"; } if ($min < 10) { $min = "0$min"; } if ($hour< 10) { $hour= "0$hour"; } if ($mday< 10) { $mday= "0$mday"; } if ($mon < 10) { $mon = "0$mon"; } $youbi = ('日','月','火','水','木','金','土') [$wday]; $date = "$year年$mon月$mday日"; # 環境変数の取得 $agent= $ENV{'HTTP_USER_AGENT'}; $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; if ($host eq $addr){$host=gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr;} elsif ($host eq ""){$host=gethostbyaddr(pack('C4',split(/\./,$addr)),2) || $addr;} if ($host =~ /(.*)\.(\d+)$/) { ; } elsif ($host =~ /(.*)\.(.*)\.(.*)\.(.*)$/) { $host = "$1\.$2\.$3\.$4"; } elsif ($host =~ /(.*)\.(.*)\.(.*)$/) { $host = "$1\.$2\.$3"; } #IPから人名を推測 if ($addr eq "219.127.72.66"){ $namae = "たいら会社"; } if ($addr eq "219.127.72.69"){ $namae = "たいら会社"; } if ($addr eq "219.54.152.41"){ $namae = "自宅"; } if ($addr eq "210.172.197.205"){ $namae = "事業団"; } if ($addr eq "210.138.206.11"){ $namae = "そうそう"; } if ($addr eq "134.237.250.55"){ $namae = "ゆみん"; } if ($addr eq "218.131.82.159"){ $namae = "リス"; } $host_s = substr($host, -30, 30); if ($host_s eq "miex.nt.adsl.ppp.infoweb.ne.jp"){ $namae = "とこ"; } $host_s = substr($host, -9, 9); if ($host_s eq "bbtec.net"){ $agent_s = substr($agent,-3, 3); if($agent_s eq "98)"){ $namae = "ぐりこ"; } } $host_s = substr($host, -9, 9); if ($host_s eq "bbtec.net"){ $agent_s = substr($agent,-47, 47); if($agent_s eq "(R1 1.5); .NET CLR 1.0.3705; .NET CLR 1.1.4322)"){ $namae = "れーん!"; } } $host_s = substr($host, -10, 10); if ($host_s eq "home.ne.jp"){ $agent_s = substr($agent,-4, 4); if($agent_s eq "5.1)"){ $namae = "のいろーぜ"; } } if ($addr eq "202.24.68.1"){ $namae = "けーこ"; } $host_s = substr($host, -11, 11); if ($host_s eq "freesurf.ch"){ $namae = "アルプスの国から"; } $host_s = substr($host, -11, 11); if ($host_s eq "plala.or.jp"){ $namae = "災害復興中やまさん"; } $host_s = substr($host, -15, 15); if ($host_s eq "ppp15.odn.ne.jp"){ $namae = "ちかん"; } # 現在カウントの取得とカウントアップ open(COUNT,"$countfile"); $count = ; close(COUNT); $count++; open(COUNT,">$countfile"); flock(COUNT,2); print COUNT $count; flock(COUNT,8); close(COUNT); # 書き込みデータの編集 $disp_log = "$count\: $date\: $youbi\: $hour\: $min\: $sec\: $addr\: $host\: $agent\: $namae\: \n"; # ログの取得 open(LOG,"$logfile") ; @log=; close(LOG); # 最大件数−1 $n = 0; foreach $colum(@log){ $n++; # 最大表示ログ件数 if($n == $maxlog){last;} push(@newlog,$colum); } # 書き込んだデータをトップに unshift(@newlog,$disp_log); # 記録ファイルへ出力 open(LOG,">$logfile"); flock(LOG,2); print LOG @newlog; flock(LOG,8); close(LOG); exit;