2009.08.25
Yoshi 開発

自作アクセス解析 Vol.1

2週目になる今回からはSEOに関した事を少しずつ書こうかと思います。

ところで、どのぐらいの方がこのブログをご覧になられているのでしょう?
公開したはいいけど、誰にも見られていないんじゃないだろうか・・。(それはあまりに寂しいですが)

その不安を解消する為にアクセスカウンターを埋め込んだり、Google Analyticsを埋めたりするのが当たり前になってきていますが、今回はPHPとJavaScriptを使ってどれぐらいアクセス情報が取れるかやってみようと思います。

前提条件として、

1. 一般的なサイトにもJavaScriptを書くだけで情報が取れる。埋め込むのは一行のスクリプト!
2. データ収集をするサーバーと公開しているサーバーは別物。

上記 2点の条件で下記の様なものを作ってみたいと思います。

analysis2

まずJavaScriptで取れる必要そうなクライアント情報を並べてみます。

ホスト名 location.host,location.hostname
ポート番号 location.port
リクエストページ location.pathname
ブラウザ名 navigator.appName
ブラウザバージョン navigator.appVersion
言語 navigator.language
プラットフォーム navigator.platform
ユーザーエージェント navigator.userAgent
リファラ document.referrer
ドメイン document.domain

では実際に取得してみます。

アクセス情報

ホスト名
ポート番号
リクエストページ
ブラウザ名
ブラウザバージョン
言語
プラットフォーム
ユーザーエージェント
リファラ
ドメイン

取得できるものはできていますが、欲しい情報であるIP情報を取ることができていません。

結論から言いますとJavaScriptでIP情報を取得することはできないです。
ではどうやって取得するのかですが、CGIに頼るしかないようです。

ではPHPではどれくらい情報が取得できるのでしょうか。

ホスト名 $_SERVER[‘HTTP_HOST’]
ポート番号 $_SERVER[‘REMOTE_PORT’]
リクエストページ $_SERVER[‘REQUEST_URI’]
ページを見ている人のIPアドレス $_SERVER[‘REMOTE_ADDR’]
ページを見ている人のホスト名 gethostbyaddr($_SERVER[“REMOTE_ADDR”])
言語 $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]
ユーザーエージェント $_SERVER[‘HTTP_USER_AGENT’]
リファラ $_SERVER[‘HTTP_REFERER’]

大体はJavaScriptと同じように取得できます。
IPアドレスとホスト名が取得できるのはいいですね。

しかし今回はPHPの動かないWEBサイトに埋め込む事を想定しているので、
この情報をそのまま取得することはできません。

今回はここまでです。

次回は、実際にスクリプトを書いて取得させてみようと思います。

Yoshi

一覧に戻る