KK-NETレンタルサーバーサービス ベスト・レンタルサーバ・サービス
レンタルサーバー サイトマップ
最新情報サービス案内サポート回線状況会社案内求人情報お問合わせ著作権について
イメージ画像
CGIライブラリ 私たちは出来る限りユーザーの役に立てるよう絶えずCGIライブラリを構築しています。
プログラムライブラリ

Perl 5.8
Ruby
Python
サイボウズ Office8
サイボウズ Office7
サイボウズ Office6
サイボウズ Office4
サイボウズ AG
サイボウズ デヂエ
サイボウズ メールワイズ
Zope
XOOPS
Internet Wave
mailform.pl
Majordomo
SpamAssassin
SpamSubject
Whois Gateway
WWW Board 2.0
WWW Count 2.5
WWW Stat 2.1
Analog 5.03
Webalizer
MHonArc
OsCommerce
アクセスカウンター
ゲストブック 2.3.1
サーバープッシュ
チャット(CHAT)
javaアプレット
クリッカブルマップ
コメントフォーム
リモートエージェント
オートレスポンダー

 

リモートエージェント検出

世の中には様々なブラウザが存在します。 それらのブラウザを検知してブラウザによって異なるページを表示できます。

  1. リモートエージェント検出
  2. リモートエージェント検出ソースコード
  3. インストール
注意:
ブラウザによっては機能しない事もあります。
また、同様な事をJavaスクリプトを利用して実現する事も可能です。

1.リモートエージェント検出

下のHTMLソースを書くことによってリモートエージェントを検出するスクリプトを呼び出す事ができます。

<!--#exec cgi="/cgi-bin/agent.cgi"-->

このHTMLソースを機能させるにはあなたのバーチャルサーバー(NCSA httpd v1.5) でサーバーサイドインクルードが利用できるように設定されていなければなりません。設定は "access.conf" または ".htaccess" ファイルで行います。 例えば ".htaccess" を下のように作ってサーバーサイドインクルードを利用するデレクトリに置きます。

Options Indexes FollowSymLinks Includes
AddType text/x-server-parsed-html .html

この時、AddType text/x-server-parsed-html .shtmlとしてサーバーサイドインクルードを利用するHTMLファイルを.shtmlという拡張子にした方が良いかも知れません。.html を指定すると他のHTMLファイルへのアクセスがわずかですが遅くなることがあります。


2.リモートエージェント検出ソースコード

このソースコードは Rus Berrett 氏によってパブリックドメインとして公開されているものです。 このソースコード中の 太字 になっている部分を希望するファイルへのフルパス名に変更する必要があります。

FILE: agent.c
PURPOSE: load different html documents based on agent
AUTHOR: Russell Berrett
DATE: October 4, 1995
LAST UPDATED: October 19, 1995

Copyright 1995 SurfUtah.Com.
Permission granted to copy, modify, and otherwise use this code in
whatever manner you see fit, with no warranty expressed or implied.
Please retain this notice; this is the only restriction. If you
make any changes to the original code, please credit yourself so
that SurfUtah.Com is not asked to maintain versions of code that
were not developed by SurfUtah.Com.

SURFUTAH.COM GIVES NO WARRANTY, EXPRESSED OR IMPLIED, FOR THE SOFTWARE
AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT LIMITATION, WARRANTY
OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE.

#include
#include
#include

#define TRUE 1
#define FALSE 0

/* add other agents here */
typedef enum {mozilla2_0, mozilla1_1, mozilla1_0, ms_explorer, other_agent} agenttype;

/*-------------------------------*/
int main(int argc, char *argv[])
{
agenttype theagent;
char *cptr = NULL, filename[512], agent[512];
FILE *fptr = NULL;
int character;

printf("Content-type: text/html\n\n");

sprintf(agent, "%s", getenv("HTTP_USER_AGENT"));

/* check to see which type of agent is making request */
cptr = strstr(agent, "Mozilla");
if (cptr) { cptr += 8; if (strncmp("2.0", cptr, 3) <= 0)
theagent = mozilla2_0;
else if (strncmp("1.1", cptr, 3) <= 0)
theagent = mozilla1_1;
else
theagent = mozilla1_0;
}
else if (strstr(agent, "Microsoft Internet Explorer")) {
theagent = ms_explorer;
}
else {
theagent = other_agent;
}

/* assign a filename based on the agent */
switch (theagent) {
case mozilla2_0:
/* ideally we should have a filename that would have some kind of HTML source with frames, but I don't so I'll just let it run into Mozilla1.1 */
case mozilla1_1:
strcpy(filename, "/usr/local/etc/httpd/htdocs/home.html");
break;
case ms_explorer:
/* Microsoft has some really cool stuff like embedded avi. It would be nice if I had something like that, but since I don't- I'll just let it run down to the non-enhanced */ case mozilla1_0: /* no table support in Netscape 1.0 */
case other_agent:
strcpy(filename, "/usr/local/etc/httpd/htdocs/home_ne.html");
break;
}

fptr = fopen(filename, "r");
character = fgetc(fptr);
while (character != EOF) {
printf("%c", (char)character);
character = fgetc(fptr);
}
fclose(fptr);
} /* main */ /
*----------------------------------------------------*/
/* eof */


あなたがCGIやサーバーサイドインクルードについて良く知らない場合は下のURLを参照して見てください。

http://hoohoo.ncsa.uiuc.edu/cgi/


*

3.インストール

リモートエージェント検出をインストールするには次の手順で行います。
  1. サーバーサイドインクルードを利用したHTMLファイルを作る
    <!--#exec cgi="/cgi-bin/agent.cgi"-->を書いた "index.html"かあるいは"index.shtml"を "usr/local/etc/httpd/htdocs" 以下の希望のデレクトリに置く。
  2. リモート検出のソースコードをダウンロードしコンパイルする
    agent.cをダウンロードして "usr/local/etc/httpd/htdocs/cgi-bin" デレクトリに置きます。 この時、このソースコードの太字の部分を希望するファイル名へのフルパス名に変更してください。 また、他のブラウザに対応させたい場合は該当部分を変更してください。 telnetで接続し、"usr/local/etc/httpd/htdocs/cgi-bin" をカレントデレクトリにして次のコマンドで "agent.cgi" をコンパイルします。

    cc agent.c -o agent.cgi

  3. ブラウザ毎のHTMLファイルを用意します
    それぞれのブラウザ毎のHTMLファイルをソースコードで指定したデレクトリに置きます。

以上で完了です。上手くインストール出来ていればブラウザ毎に異なるページを表示させる事が出来るでしょう。





ページの先頭へ
[ サービス案内 : レンタルサーバーVPSプラン比較サーバーハウジングドメイン取得リセラーディスカウント]
[ ユーザーサポート : FAQmini/Lite/150パーソナル10バーチャルサーバー機能拡張CGIライブラリ]
[ ホーム] [ 最新情報] [ 回線情報] [ 会社案内] [ 求人情報] [ お問合わせ] [ 著作権について]
Copyright © 1997-2023 KK-NET. All rights reserved.
All brand names and product names used on these web pages are trademarks, or trade names of their respective holders.
Rental server hosting services provided by sales@kk-net.net
KK-NET レンタルサーバーサービス