アクセスカウンターに自分をカウントさせないようにするには?
[上に]
[前に]
[次に]
みさお
[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
失礼。<、>、&はそれぞれ<、>、&に読みかえてください。
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を試してみようと思います。
これから勉強します・・・。
[上に]
[前に]
[次に]