みなさんが作ったホームページにどのような人がアクセスしてきたかを知りたいと思いませんか?
環境変数というものを使って、ある程度のことを知ることができます。環境変数は、アクセスしたブラウザーがサーバーに対して送信されますので、これらの情報は、サーバー側で受け取ることができます。
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;
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;