環境変数

ネットサーフィンを楽しんでいると「あなたはIE5.0を使用していますね」や「あなたのホストは・・・OSは・・・」などのユーザー情報が表示される事があります。これは難しそうで意外と簡単に使用できる「環境変数」の仕業なのです。それでは最後の章なので張り切って勉強しましょう!

※環境変数を使えば個人情報は丸見え!

まず、「何でユーザー情報が相手のホームページに表示されるのか?」という事を説明します。インターネットをする時、ほとんどの方はブラウザソフトからアクセスするはずです。その時ブラウザソフトは「パソコンのOS・ブラウザの種類・IPアドレス」などの情報をアクセスしているホームページへ送るのです。この情報は「%ENV」という名前のハッシュに自動的に指定されます。この「%ENV」が環境変数です。

ハッシュは、キーと値がペアになっていますが、キーはすでに決められています。そして、値に送られてきたユーザー情報が指定されます。例えば「REMOTE_HOST」の値には、ホームページを見たユーザーのホスト名が指定されます。それでは記述例をご覧ください。

%ENV=環境変数
ブラウザの種類を取得するCGI
#!C:/Perl/bin/perl
print "Content-type:text/html\n\n";
print <<EOF;
<html>
<head>
<title>環境変数を使ってみましょう</title>
</head>
<body>
<font size="4">
$ENV { ' HTTP_USER_AGENT ' }  #ここで環境変数を取得する
</font>
</body>
</html>
EOF
exit;
出力結果(Win98/IE4.0の場合)
Mozilla/4.0(compatible;MSIE4.01;Windows98)
環境変数「%ENV」のキー
CONTENT_LENGTH POST形式のフォームから入力されたデータバイト数
HTTP_COOKIE クッキーの情報
HTTP_HOST ドメイン名
HTTP_REFERER リンク元のURL
HTTP_USER_AGENT ユーザーのブラウザソフトの種類・使用OS
PATH パスの情報
REMOTE_ADDR ユーザーのIPアドレス
REMOTE_HOST ユーザーのホスト名
REQUEST_METHOD CGIプログラムが呼び出された方式。値はPOST/GET
SCRIPT_NAME 実行されるCGIプログラムのURL
SERVER_NAME CGIプログラムが置かれているサーバのホスト名
SERVER_SOFTWARE CGIプログラムが置かれているWWWサーバソフト
SSIだけで使える環境変数
DATA_GMT 日時データ(グリニッジ標準時)
DATA_LOCAL 日時データ(ローカル時間)
DOCUMENT_NAME 現在処理しているファイル名
DOCUMENT_URL 現在処理しているファイルのURL
LAST_MODIFIED 現在処理しているファイルの最終更新日時