|
マイクロソフトのサイトからのコンポーネントの配付は終了したようです。サンプルコンポーネントは「Microsoft Infomation Server リソースキット」を購入すれば入手可能。
・アクセスカウンター
アクセスカウンターをセットする方法はいろいろあるようですが、試したなかで一番簡単な方法は以下のようなもの。IIS4.0に組み込まれている標準のASPには、アクセスカウンター用のActiveXコンポーネントは組み込まれていない。まず、コンポーネントを入手する。
http://www.microsoft.com/windows/downloads/default.asp
Select の部分で「Show All」を選び「go」ボタンをクリックスクロールすると「Internet Information Server」のところにActive Server Componentsが置かれてある。URLはよく変わので注意。
ActiveXコンポーネント「IISPageCnt2.EXE」をダウロードしたら、NT Serverに組み込む。このサイトから入手できるActiveXコンポーネントは他に以下のようなものがある。
IISRegistr2.EXE、IISDevSmpl2.EXE、IISPageCnt2.EXE、IISTracer1.EXE、IIShtmlTbl2.EXE
IISContRot2.EXE、IISSumInfo2.EXE、IISPermChk2.EXE、IISTextFmt2.EXE、 などである。
※IISPermChk2.EXEもダウンロードしておこう。
ダウンロードした「IISPageCnt2.EXE」をダブルクリックしてインストールする。展開先はとりあえず、/InetPub/issampies あたりに展開する。展開した「/InetPub/issampies/Components/PageCnt」フォルダに説明用のテキスト(英文)がインストールされるのでテキストに従い、レジストリにダイナミックリンクファイルを登録する。
・Windowsのスタートメニューからコマンドプロンプトを起動する。
コマンドプロンプトに以下のように入力する。InetPubフォルダがCドライブ以外にあるなら、そのドライブに移動する。
C:\>cd \InetPub\issampies\Components\PageCnt\DLL\i386
リターン。続いて以下のように入力する。
regsvr32 PageCnt.dll
リターン。これで終了。
・カウンターを付けるページを編集する。
ページはどんなソフトで作った物でもいいが、ASPスクリプトを書き込んでいく場合は、テキストエディタかASPを編集できるソフトで作業する。
ASPスクリプトは <% で始まり %> で閉じる。このスクリプト部分をHTMLのソースに書き加える。
・まず、既存のあるいは新しく作成したxxx.htmlファイルをテキストエディタで開き、xxx.aspと拡張子を「.asp」に変えて保存する。
Windowsですべての作業をするならどうでもよさそうだが、Macで作成する場合は一度テキストで保存しほうがよさそうだ。Macのソフト、Home Page Proなどでページを作りHTMLモードでASPスクリプトをペーストしたり書き込んでいくと不等号記号「<%」がタグ用ではなく表示用「<% 」に化けてASPが機能しない。Adobe GoLive 4.0Jはaspを直接編集できるようです。
・カウンターのスクリプト
| <HTML>
<!--This file created by Home Page Pro version 3.0J v1-->
<HEAD>
<TITLE>test</TITLE>
<META NAME=GENERATOR CONTENT="Home Page Pro 3.0J v1">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-sjis">
</HEAD>
<BODY BGCOLOR="#FFFFF0">
<!--こここからASPスクリプト-->
<%
Set MyPageCount = Server.CreateObject("IISSample.PageCounter")
HitMe = MyPageCount.Hits
%>
Youe Visitor [<%=HitMe%>] <BR>
</P>
</BODY>
</HTML>
|
上のページでは、Youe Vistor[ 1 ] とブラウザーに表示される。
・クライアントの環境変数の取得
標準で組み込まれている「Requestオブジェクト」を使用する。Requestオブジェクトは、HTTP要求の中でクライアントブラウザがサーバに渡す値を取得する。Cookies、form、QueryString、ServerVariablesなどがある。
・ServerVariablesコレクションの使用このコレクションは定義済の環境変数の値を取得する。
ALL_HTTP---クライアントから送信されたすべてのHTTPヘッダ
REMOTE_HOST---要求をだしたホストの名前など。
最も簡単なスクリプトは以下のようにリモートホストを表示する。書き方は2種類ある。
<% Response.Write "REMOTE_HOST" & Request.ServerVariables("REMOTE_HOST") %>
<%= Request.ServerVariables("REMOTE_HOST") %>
上と下は同じ。「=」は短いステートメントで取得した値をWebページに表示するように要求している。
| <HTML>
<HEAD>
<TITLE>テスト</TITLE>
</HEAD>
<P>
定義されているおもな環境変数<BR>
<HR>
<!--クライアントの認証ダイァログに入力された値、基本認証の場合のみ有効-->
AUTH_PSAAWORD server variable =
<%= Request.ServerVariables("AUTH_PSAAWORD") %> <BR>
<HR>
<!--保護されたスクリプトにユーザーがアクセスしようとした時に、サーバがそのユーザを確認するための認証方式-->
AUTH_TYPE server variable =
<%= Request.ServerVariables("AUTH_TYPE") %> <BR>
<HR>
<!--要求を受け取ったサーバアドレスを返す、マルチホームで活用-->
LOCAL_ADDR server variable =
<%= Request.ServerVariables("LOCAL_ADDR") %> <BR>
<HR>
<!--ログインしたWinNTユーザアカウント-->
LOGON_USER server variable =
<%= Request.ServerVariables("LOGON_USER") %> <BR>
<HR>
<!--リモートホストのIPアドレス-->
REMOTE_ADDR server variable =
<%= Request.ServerVariables("REMOTE_ADDR") %> <BR>
<HR>
<!--リモートホスト-->
REMOTE_HOST server variable =
<%= Request.ServerVariables("REMOTE_HOST") %> <BR>
<HR>
<!--ポート番号-->
SERVER_PORT server variable =
<%= Request.ServerVariables("SERVER_PORT") %> <BR>
<HR>
</P>
</HTML>
|
Macをサーバにした場合、カウンターを付けたり、環境変数をクライアントのブラウザ表示するには
「NetCloak」というユーティリティを使うのが一般的だと思う。簡単だから。
カウンターは以下の一行
Youe Visitor <INSERT_COUNT><BR>
リモートホストは以下の一行
<INSERT_DOMAIN>
ASPにもこのような簡単なコマンドがあったらもっと便利だろうと思う。
|