アクセスログ解析スクリプトですが、あるサイト(ディレクトリ)以下全ページに対してのアクセスログをとってくれるスクリプトを探しています。よくあるアクセスログ解析スクリプトは解析したいページにタグを追加するものですが、全ページに対してこのような作業を行う事が出来ません。「特定のディレクトリ以下の全HTMLファイルを対象にアクセスログをとる」仕様のスクリプトはどこかにないでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

WEBページに関してなら、ログをとれるでしょうね。


ただ、それを行うスクリプトが存在していて(多分誰か作ったでしょうが)
自由にDLできる場所にあるかは解りません。
ただ、使い勝手云々を置けば、一般的なものでも実現できるかも知れません。
スクリプトの実行をIMGタグで記述しておけば、そのスクリプトがどのURLから実行されたか
REFERERに入っていますので、訪問者はそのページへ行った、ということになります。
上手くやればどの画像を見たとか、どれをDLしたとかも解るでしょう。

後はログを訪問者のHOSTNAMEでgrepでもしてみるとよいでしょう。
勿論、同時に同じプロキシ経由でアクセスされた場合は解らなくなってしまいますが。

レンタルサーバーとのことですが、ログを読む権限はないんでしょうか?
なければコピーも出来ませんので、自作するのが一番手っ取り早いでしょう。

#管理の上での理想は、HTMLファイル毎にログを用意することでしょうか。
#IMGタグなんかじゃなく、SSIが使えればもっと奇麗に出来るでしょう。
    • good
    • 0

ところでいわゆる普通のレンタルサーバーみたいな環境ですよね?


ログ参照できるとか特別な環境だったらできるはずですけど。

この回答への補足

>>Sephy様

ご回答ありがとうございます。
レンタルサーバーにログ参照ツールは用意されていますが、一日毎にログが自動的に削除されてしまうものです。ホスト会社に問い合わせてみたところ、特定の期間のログを抽出する事は出来ないという回答でした。「ログ参照できるとか特別な環境」かどうかは判断出来ないのですが、このような経緯があります。

補足日時:2001/01/06 10:46
    • good
    • 0

CGIでカウントを取るにはCGIが起動されないといけないので、


CGIでやるには自分でサーバーを立ち上げて細かい設定をしていかないとできないような気がします。
そういうのができると面白いと思いますけどね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QACCESS2003のデータアクセスページの使い方について

イントラ内でACCESS2003のデータアクセスページを使いたい。

1.ACCESS2003のデータアクセスページを作成しました。
2.そのMDBファイルと、データアクセスページ(htmファイル)を、WINDOWS2000ServerのInetpub内のwwwrootフォルダの中へ入れました。
3.ここにはイントラ内のHPなどを置いています。(普通に見れています。)
4.クライアントから、データアクセスページのhtmファイルを見に行くと「データソースログオン」が立ち上がります。(パスワードを設定しています。)
5.パスワードを入れるとデータアクセスページ(htm)から、通常のアクセスのフォームのごとくデータ入力が出来る予定なのですが(泣)できません。(泣)

で、悩んでおります。

ACCESS2003のMDBファイルとデータアクセスページ(HTMファイル)をサーバーのwwwrootへ置いただけでは、データアクセスページを通してmdbファイルへの入出力は不可能なのでしょうか?

Aベストアンサー

MDBに接続されたAccessプロジェクトを開いている場合データアクセスページは自動的にそのデータベースに接続されてそのパスがデータアクセスページのConnectionString プロパティに設定されます。
ページを作成した後でデータベースを移動またはコピーした場合はConnectionString プロパティに設定されているパスを更新して新しい保管場所を設定する必要がありますがどうなっていますか?
そこを確認してみてください。

QアクセスログのOS解析について

いつもお世話になります。
futomi's 高機能アクセス解析にて。

Mozilla/4.0 (compatible; Trend Micro tmdr 1.0-1032)
これは、なんと言うブラウザで、OSは何でしょうか?

教えて下さい。

Aベストアンサー

セキュリティソフトの類に付いているプライバシー保護機能の中にはUAに関する情報を隠すように設定すると、OSやブラウザ名の代わりにソフト名等を表示するものがあります。
たぶん、Trend Micro社製のなんらかの製品を使い、ブラウ
ザ情報を隠しているのだと思います。

Qホームページ移転に伴う.htaccessの使い方ですがアップロードして

ホームページ移転に伴う.htaccessの使い方ですがアップロードして削除できなくなる事ないですか??また、さくらサーバーは.htaccess使えますか??

Aベストアンサー

.htaccessだけではなく、
ファイルはパーミッションによっては一旦削除できなくなると思いますよ・・・
使えないのにアップすると削除出来ないとか。

>さくらサーバーは.htaccess使えますか??
使えます。
.htaccessを使えない有料サーバってあるのでしょうか?・・・

QアクセスログのGCIスクリプト

アクセスログGCIスクリプトを探してます

・無料で
・リンク元
・IPアドレス
・ドメイン名
・OSブラウザ
が分かるものってないでしょうか?

最低でも
・無料で
・リンク元
・IP
がわかればいいです

動作が重くないもので、オススメなものはありませんか?

Aベストアンサー

#1です。
リンク先もでしたね^^;

WEB ACCESS
観覧制限パスワード機能
アクセス元ホスト名レポート解析機能
アクセス元ドメイン名レポート解析機能
訪問者ブラウザーレポート解析機能
時間別アクセス数レポート解析機能
月別カレンダー表示機能
月別ログ保存機能

これはいかがですか?

参考URL:http://www.olive-design.com/~cgi/

QAccessで作成したテーブルのOLEオブジェクトの使い方

Accessで作成したテーブルにデータ型(OLEオブジェクト型)で画像を取り込みできるようにしました。
取り込みした画像を開くためのフォームを作成して画像を開けるようにしました。
下記の内容です。

Private Sub Form_Open(Cancel As Integer)
Form.Caption = ProgName
End Sub

しかし「ビットマップ形式」ですと問題なく開くのですが、「JPG形式」ですと開けないのです。取り込みしたAccessテーブルのフィールドから直接だとひらけます。
Accessで作成したフォームから、「JPG形式」の画像を開くにはどうすればよろしいですか?
また、画像を1000件ほど取り込みすると大きいデータベースになってしまいます。Accessのデータベースのサイズは制限があるのかしら?
アドバイスいただけれは幸いです。

Aベストアンサー

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正しく表示されません
http://support.microsoft.com/kb/832508/ja

解決策としては JPEG を開ける OLE コンテナになるアプリケーションをインストールしておく。

Google「Access データベース サイズ 制限」で検索
http://www.google.com/search?hl=ja&num=50&q=Access+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9+%E3%82%B5%E3%82%A4%E3%82%BA+%E5%88%B6%E9%99%90&lr=lang_ja

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正...続きを読む

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

サイトを訪れた人の[日時][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をご存知でしたら教えていただけないでしょうか?
よろしくお願いします。

サイトを訪れた人の[日時][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]
------------...続きを読む

Aベストアンサー

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);
}
}

perlで書いてみました。

サーバーに保存してcgiのアドレスを
htmlのimageタグに書き込んで呼び出すといいと思います。
画像は邪魔にならないように適当に1ピクセルのデータでも作って指定するといいとおもいます。
accessLog_SaveToFile("testlog.log");
で  指定したファイル名にログに書き込みますから
好きなファイル名をいれるといいです。
printoutImage("1pxsmall.jpg");
で画像を表示します。 いらないなら#でコメントにするといいです。
とりあえず3つ(jpg,gif,png)は自動で拡張子振り分...続きを読む

QAccess2000でFTPの使い方について。

Access2000のフォームから、実行のボタンをクリックするとFTPサーバに接続→ファイル取得→Accessテーブルに取込→FTPサーバのファイル削除→FTPサーバの接続切断という処理をしたいのですがどのようにしたらよいかわかりません。説明不足だとは思いますが、アドバイスを宜しくお願い致します。

Aベストアンサー

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。

sub file_download()

Dim ftp As Object, rc As Long, v As Variant, v2 As Variant
Dim ctr As Long

Set ftp = CreateObject("basp21.FTP")
ftp.OpenLog "c:\temp\log.txt"
rc = ftp.Connect("ftp.microsoft.com", "anonymous", "")
If rc = 0 Then
v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一覧(詳細)
If IsArray(v) Then
For Each v2 In v
Debug.Print v2
Next
End If
v = ftp.GetDir("bussys/winnt/winnt-public") ' ディレクトリ一覧(ファイル名のみ)
If IsArray(v) Then
For Each v2 In v
Debug.Print v2
Next
End If
rc = ftp.GetFile("bussys/winnt/winnt-public/*", "c:\temp") 'ファイル受信

end sub

実行には20秒ほどかかります。
実行前にはCドライブにtempというフォルダを作っておいてください。

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。

sub file_download()

Dim ftp As Object, rc As Long, v As Variant, v2 As Variant
Dim ctr As Long

Set ftp = CreateObject("basp21.FTP")
ftp.OpenLog "c:\temp\log.txt"
rc = ftp.Connect("ftp.microsoft.com", "anonymous", "")
If rc = 0 Then
v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一...続きを読む

Qレンタル出来るアクセスカウンターでどのホームページから来たか解析

レンタルアクセスカウンターでどのホームページから飛んできたか解析出来るようなアクセスカウンターを知っている人はいませんか?

Aベストアンサー

いろいろありますがINFOSEEKの解析カウンターは
詳しいログが取れるのでお奨めです。
無料使用可能
登録必要です。
http://analyze.www.infoseek.co.jp/?sv=AC&svx=100302&svp=SEEK

参考URL:http://analyze.www.infoseek.co.jp/?sv=AC&svx=100302&svp=SEEK

QRuby on Rails 「attr_accessor」 の使い方に

Ruby on Rails 「attr_accessor」 の使い方について

こんにちは。

現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。

attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。

問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状態になってしまうことです。
「:if => 項目?」を書いてみると、「undefined method」のエラーがでてしまいます。

どなたか対応策の分かる方がおられましたらご教授いただけないでしょうか?

下記に実際の問題箇所のモデルクラスのソースを書いておきます。

 class User < ActiveRecord::Base

   attr_accessor :NEW_USER_PW ← 追加したアクセサ

   # 追加したアクセサに対するチェック
   validates_length_of :NEW_USER_PW, :minimum=>4, :message=>"は%d桁以上を設定してくださ            
    い。", :on => :update, :if => :NEW_USER_PW?

 end

上記のチェック内の「:if => :NEW_USER_PW?」で落ちてしまいます。
入力がないのにチェックに引っかかるとまずいので、入力がないときだけ上記チェックを行えれば良いのですが・・・。

どうぞ宜しくお願い致します。

Ruby on Rails 「attr_accessor」 の使い方について

こんにちは。

現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。

attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。

問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状...続きを読む

Aベストアンサー

attr_accessor :NEW_USER_PWを定義したからといって、
NEW_USER_PW?メソッドが定義されるわけではりません。
attr_accessorはゲッターとセッターメソッドを作るだけです。
それ以外の論理値を返すようなメソッドは自作しなければなりません。

NEW_USER_PW?メソッドを作成されていないのなら、「undefined method」が
出てしまうのは当然です。

質問にあるように、「入力があった場合のみ」とありますので、
NEW_USER_PW?メソッドを下記のように実装すればチェック可能です。

def NEW_USER_PW?
@NEW_USER_PW.size > 0
end

また、ifにはprocオブジェクトを渡すこともできますので、
:if => Proc.new{|u| u.NEW_USER_PW.size > 0}
と書いてもいいでしょう。


NEW_USER_PWというインスタンス変数はすべて大文字を使用されていますが、
見る人によっては定数と勘違いします。
変数であれば小文字表記を利用するほうが良いかもしれません。

attr_accessor :NEW_USER_PWを定義したからといって、
NEW_USER_PW?メソッドが定義されるわけではりません。
attr_accessorはゲッターとセッターメソッドを作るだけです。
それ以外の論理値を返すようなメソッドは自作しなければなりません。

NEW_USER_PW?メソッドを作成されていないのなら、「undefined method」が
出てしまうのは当然です。

質問にあるように、「入力があった場合のみ」とありますので、
NEW_USER_PW?メソッドを下記のように実装すればチェック可能です。

def NEW_USER_PW?
@NEW_USER_PW.s...続きを読む

Qアクセス解析CGI、"?"以下を表示させず、1つにまとめる方法

http://www.rescue.ne.jp/
ここのSSIアクセス解析を使用しています。
http://www.rescue.ne.jp/cgi/webaxs/sample/webaxs.cgi
シンプルでいいのですが、1つだけ難点が…
検索サイトなどで、?以降に検索語句が入っているものってありますよね。それが必要ないんです。
どのサイトから来たかだけがわかれば良いので、?以下を表示させず、1つにまとめてほしいのですが…
たとえば、ここ教えてgooを検索すると、
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E6%95%99%E3%81%88%E3%81%A6+goo
となります。
これを、「http://www.google.co.jp/search」だけにして集計してほしいんです。

どうしたらこのように出来ますか?集計CGIである「webaxs.pl」を改造する必要があると思うのですが…
よろしくお願いします。

http://www.rescue.ne.jp/
ここのSSIアクセス解析を使用しています。
http://www.rescue.ne.jp/cgi/webaxs/sample/webaxs.cgi
シンプルでいいのですが、1つだけ難点が…
検索サイトなどで、?以降に検索語句が入っているものってありますよね。それが必要ないんです。
どのサイトから来たかだけがわかれば良いので、?以下を表示させず、1つにまとめてほしいのですが…
たとえば、ここ教えてgooを検索すると、
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E6%95%99%E3%81%8...続きを読む

Aベストアンサー

集計する前に、?が含むURLから?以降を削ってあげる処理を入れれば良いです。webaxs.plに追記するひつようはあろかと思います。plと書いてあるから、perlですよね?(って勝手に決め付けちゃいます)

<必要な記述>
仮にURLが入る変数を$abcとすると。
次の1行を入れれば、OK。

$abc =~ s/\?.*//;

これは、文字列置換の書き方です。
=~ は、左辺の変数を対象に、右辺の処理を施した結果を、右辺に代入しなさいということ。
s/は、これから置換するぞ!ということ。
\?.* は、?(特殊文字なので、前に\を付けてあげます)を含む、それ以降の文字列すべてを対象にします。ということ。
その後ろの//は、置き換える文字列ですが、何も入っていないですよね?これは、結局、置換対象の文字を削るということ。

<サンプル>

$abc="http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=%E6%95%99%E3%81%88%E3%81%A6+goo";
print $abc."\n";
$abc =~ s/\?.*//;
print $abc."\n";

集計する前に、?が含むURLから?以降を削ってあげる処理を入れれば良いです。webaxs.plに追記するひつようはあろかと思います。plと書いてあるから、perlですよね?(って勝手に決め付けちゃいます)

<必要な記述>
仮にURLが入る変数を$abcとすると。
次の1行を入れれば、OK。

$abc =~ s/\?.*//;

これは、文字列置換の書き方です。
=~ は、左辺の変数を対象に、右辺の処理を施した結果を、右辺に代入しなさいということ。
s/は、これから置換するぞ!ということ。
\?.* は、?(特殊文字なので、前...続きを読む


人気Q&Aランキング