アクセスカウンターに自分をカウントさせないようにするには?

[上に] [前に] [次に]
みさお [E-Mail] 1998/01/06(火) 00:14:41
自分のホームページに一番よく行くのはきっと私。
アクセスカウンターの数が増えるのは嬉しいけれど、やはり自分以外の人がどれくらい来てくれているのかを知りたい。
ホームページの持ち主(何て言えばいいんでしょう?)をカウントさせないようなアクセスカウンターはどのようにすればよいのでしょうか。

初心者ですのでなにとぞよろしくお願いします・・・

B-Cus 1998/01/10(土) 23:37:46
こんにちは。ここでは初めて発言します。
よろしくお願いします。

CGIを2段重ねにして、index.htmlからは
counter.cgiにリンクをはり、

----counter.cgi-----
#!/usr/local/bin/perl

if ( $ENV{'REMOTE_HOST'} ne '自分のリモートホスト' ) &&
     $ENV{'HTTP_USER_AGENT'} ne '自分のUA' ){
  print `/home/user/cgi-bin/real-count.cgi`; # 本物のカウンタを実行
}

ってのはどうでしょう。借りもののカウンタなら
 print `/home/user/cgi-bin/real-count.cgi`;
の変わりに
 print `lynx -source http://www.......or.jp/~foo/real-count.cgi`;
                   # 借りもののカウンタのURL
とか。

でもこれは、ふと思い付いた方法なんでできるかどうかはわかりませんが…。




僕の場合は index.htmlからカウンタへのリンクの部分を
とりのぞいた myindex.htmlというファイルを作り、
自分だけはそのファイルを見るようにしています。

open(IN,"public_html/index.html");
open(OUT,">public_html/myindex.html");
while (<IN>){
 if ( /\.\/countup/ ){ next; } # カウンタへのリンク部分をスキップ
 print OUT $_;
}
close(IN);
close(OUT);

で、この更新するたびにこのスクリプトを実行しています。
# ほんとはうちは4つカウンタがあるので、相互リンクの
# 部分の書き換えがあるんですけど省略しました。

他の人には http://foo.com/~bar/index.htm lを紹介して、
自分は http://foo.com/~bar/myindex.html を見る、ってことです。

B-Cus 1998/01/10(土) 23:39:09
失礼。&lt;、&gt;、&amp;はそれぞれ<、>、&に読みかえてください。

miyasiro [E-Mail] 1998/01/11(日) 02:04:30
うちでは、自分のブラウザに有効期間が十分に長いクッキーを設定しておき、
カウンタCGIでこのクッキーを検査するようにしてます。
でも、この方法では、CGIの書き換えが必要なので、借りもののカウンタは
無理なのかな?

> B-Cus さん
$ENV{'REMOTE_HOST'}って、プロバイダ経由の場合は、
アクセスのたびに微妙に変化するようなのですが?

B-Cus 1998/01/11(日) 11:47:29
> $ENV{'REMOTE_HOST'}って、プロバイダ経由の場合は、
> アクセスのたびに微妙に変化するようなのですが?

じゃあ、
 if ( $ENV{'REMOTE_HOST'} =~ m/^123\.122\.121\.\d+$/ ){
とか
 if ( $ENV{'REMOTE_HOST'} =~ m/^pppa\d+a.pppp\.ap\.so-net\.or\.jp$/ ){
とかはどうでせう?


というより僕の場合 HTTP_USER_AGENT は
 Mozilla/3.02 (X11; I; SunOS 5.5.1 sun4m)
 Mozilla/3.01 (X11; I; FreeBSD 2.2.1-RELEASE i386)
のどちらかで、しかも大学につないでいるからこの方法で判断がつきますけど、
 Mozilla/3.01 [ja] (Win95; I)
で、so-netとかの大手につないでいたら、自分なのか他人なのか
区別できないかもしれないですねぇ。


miyasiro 1998/01/11(日) 16:05:12
> Mozilla/3.02 (X11; I; SunOS 5.5.1 sun4m)
> Mozilla/3.01 (X11; I; FreeBSD 2.2.1-RELEASE i386)
なるほど、私のようなホームユーザーとは確実に区別できそうですね。

> Mozilla/3.01 [ja] (Win95; I)
>で、so-netとかの大手につないでいたら、自分なのか他人なのか
>区別できないかもしれないですねぇ。
そうなんです。うちの場合は、訪問者も限られているので、
 m/^oosk\d+DU\d+\.osk\.mesh\.ad\.jp$/
 Mozilla/4.01 [ja] (Win95; I)
でもいけると思いますが、不特定多数が来る場所では、
やっぱり偶然の一致は避けられないと思います。

P.S.
> print `lynx -source http://www.......or.jp/~foo/real-count.cgi`;
UNIXはいいなぁ…STDOUTで全部できてしまう。
でも、うちのサーバにはlynxが見当たらない…

みさお [E-Mail] 1998/02/18(水) 02:38:32
[[解決]]
ありがとうございました。
地方の小さなプロバイダなので、同じプロバイダからはほとんど来ないだろうと思われる趣味のページは、
if($ENV{'REMOTE_ADDR'} ne '自分のIPアドレス'){
カウンタの実行r++;
   }
という単純なことでもういいやとしました。
もう一つのページは同じプロバイダからのアクセスがほとんどと思われるので、
B-Cusさんの方法かCookieを試してみようと思います。
これから勉強します・・・。

[上に] [前に] [次に]