環境変数

みなさんが作ったホームページにどのような人がアクセスしてきたかを知りたいと思いませんか?

環境変数というものを使って、ある程度のことを知ることができます。環境変数は、アクセスしたブラウザーがサーバーに対して送信されますので、これらの情報は、サーバー側で受け取ることができます。

Perlスクリプトでは、予約変数である「%ENV」に自動的に入ってきます。「%ENV」は連想配列ですね。したがって、Keyが何かを知る必要があります。一般的な環境変数の一覧は以下のとおりです。

CGIでよく使う環境変数についての詳細は、こちらをどうぞ。

Key %ENV 意味
DOCUMENT_ROOT /virtual/210.150.240.250/home サーバのドキュメントルートのパス
GATEWAY_INTERFACE CGI/1.1 CGIバージョン
HTTP_ACCEPT */*  
HTTP_ACCEPT_CHARSET Shift_JIS,*,utf-8  
HTTP_ACCEPT_ENCODING gzip, deflate  
HTTP_ACCEPT_LANGUAGE ja,fr;q=0.7,de;q=0.3 ブラウザーの表示可能言語。二つ以上ある場合には、カンマ区切り。
HTTP_CONNECTION Keep-Alive  
HTTP_HOST www.futomi.com サーバのホスト名
HTTP_REFERER   リンク元のURL
HTTP_USER_AGENT Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) あなたがお使いのブラウザーの種類・バージョンや、プラットフォームの情報が記載される。
PATH /bin:/usr/bin:/usr/local/bin  
QUERY_STRING    
REMOTE_ADDR 202.229.139.83 あなたのIPアドレス
REMOTE_HOST e139083.ap.plala.or.jp あなたのホスト名
REMOTE_PORT 1376  
REMOTE_USER   BASIC認証(アクセス制限)を実施した場合にのみ、ユーザー名が入る。
REQUEST_METHOD GET  
REQUEST_URI /cgi-bin/env_var/your_env.cgi あなたがリクエストしたURI
SCRIPT_FILENAME /virtual/210.150.240.250/cgi-bin/env_var/your_env.cgi  
SCRIPT_NAME /cgi-bin/env_var/your_env.cgi  
SERVER_ADMIN admin@futomi.com サーバの管理者
SERVER_NAME futomi.com サーバのドメイン名
SERVER_PORT 80 アクセスしたときに使ったTCPポート番号
SERVER_PROTOCOL HTTP/1.1 HTTPプロトコルのバージョン
SERVER_SOFTWARE Apache/1.3.6 (Unix) WWWサーバの種類

さて、あなたがアクセスした場合に取得できる環境変数はどうでしょう。こちらをクリックして下さい。

こちら

このスクリプトは、以下のとおりです。連想配列「%ENV」のキーをソートして表形式に出力しています。

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "<TABLE BORDER=\"1\">\n";

for $key (sort(keys(%ENV))) {
    print "<TR><TD><TT>$key</TT></TD><TD><TT>$ENV{$key}</TT></TD></TR>\n";
}

print "</TABLE>\n";
exit;