環境変数のテスト



●はじめに

CGIの中で利用できる環境変数を表示するスクリプトを作ってみました。これを利用すると、アクセスしている人のIPアドレスや、ブラウザの種類を得ることができます。自分でアクセス解析スクリプトを作るときには必須の機能です。

●実行例

認証方式(AUTH_TYPE)
標準入力バイト数(CONTENT_LENGTH)
MIME形式の情報(CONTENT_TYPE)
CGIのバージョン(GATEWAY_INTERFACE) CGI/1.1
許可したデータ形式(HTTP_ACCEPT) text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
CGIを呼び出すページのURL(HTTP_REFERER)
ブラウザ名(HTTP_USER_AGENT) CCBot/2.0 (http://commoncrawl.org/faq/)
パス情報(PATH_INFO)
絶対パス情報(PATH_TRANSLATED)
URL内の文字列のセット(QUERY_STRING)
IPアドレス(REMOTE_ADDR) 23.22.240.119
ホスト名(REMOTE_HOST)
サーバが取得したユーザ名(REMOTE_IDENT)
認証機狽ナ得たユーザ名(REMOTE_USER)
サーバへの要求方法(REMOTE_METHOD)
CGIスクリプト名(SCRIPT_NAME) /~roro/webtech/attr/attr.htm
サーバ名(SERVER_NAME) p4room.mda.or.jp
サーバのポート番号(SERVER_PORT) 80
サーバのプロトコル(SERVER_PROTOCOL) HTTP/1.0
サーバ情報(SERVER_SOFTWARE) Apache/2.4.23 (FreeBSD)
クッキー情報(HTTP_COOKIE)

●導入手順(これだけ導入してもしょうがないかな?)

1.「attr.cgi」を入手します

ここをクリックするとファイルが拾えます

これをFTPで自分のサイトに転送します。

2.ファイルのパーミッションを変更します

$chmod 755 attr.cgi

※「$」はUNIXのプロンプトだから入力する必要はないよ。

3.HTML文書にスクリプトを実行するための1行を入れます

<!--#exec cmd="attr.cgi"-->

●リスト

#!/usr/local/bin/perl
#環境変数を表示する▲(c)p4room(http://p4room.mda.or.jp/~roro/)

$a = "<tr><td><b>";
$b = "</b></td><td><b>";
$c = "</b></td></tr>";

print "<table>";
print "$a 認証方式(AUTH_TYPE)			$b $ENV{'AUTH_TYPE'}$c";
print "$a 標準入力バイト数(CONTENT_LENGTH)	$b $ENV{'CONTENT_LENGTH'}$c";
print "$a MIME形式の情報(CONTENT_TYPE)		$b $ENV{'CONTENT_TYPE'}$c";
print "$a CGIのバージョン(GATEWAY_INTERFACE)	$b $ENV{'GATEWAY_INTERFACE'}$c";
print "$a 許可したデータ形式(HTTP_ACCEPT)	$b $ENV{'HTTP_ACCEPT'}$c";
print "$a CGIを呼び出すページのURL(HTTP_REFERER)$b $ENV{'HTTP_REFERER'}$c";
print "$a ブラウザ名(HTTP_USER_AGENT)		$b $ENV{'HTTP_USER_AGENT'}$c";
print "$a パス情報(PATH_INFO)			$b $ENV{'PATH_INFO'}$c";
print "$a 絶対パス情報(PATH_TRANSLATED)	$b $ENV{'PATH_TRANSLATED'}$c";
print "$a URL内の文字列のセット(QUERY_STRING)	$b $ENV{'QUERY_STRING'}$c";
print "$a IPアドレス(REMOTE_ADDR)		$b $ENV{'REMOTE_ADDR'}$c";
print "$a ホスト名(REMOTE_HOST)		$b $ENV{'REMOTE_HOST'}$c";
print "$a サーバが取得したユーザ名(REMOTE_IDENT)$b $ENV{'REMOTE_IDENT'}$c";
print "$a 認証機能で得たユーザ名(REMOTE_USER)	$b $ENV{'REMOTE_USER'}$c";
print "$a サーバへの要求方法(REMOTE_METHOD)	$b $ENV{'REMOTE_METHOD'}$c";
print "$a CGIスクリプト名(SCRIPT_NAME)		$b $ENV{'SCRIPT_NAME'}$c";
print "$a サーバ名(SERVER_NAME)		$b $ENV{'SERVER_NAME'}$c";
print "$a サーバのポート番号(SERVER_PORT)	$b $ENV{'SERVER_PORT'}$c";
print "$a サーバのプロトコル(SERVER_PROTOCOL)	$b $ENV{'SERVER_PROTOCOL'}$c";
print "$a サーバ情報(SERVER_SOFTWARE)		$b $ENV{'SERVER_SOFTWARE'}$c";
print "$a クッキー情報(HTTP_COOKIE)		$b $ENV{\"HTTP_COOKIE\"}$c";

print "</table>";

exit;



Return IndexPage