#!/usr/local/bin/perl# ↑ Perl の呼び出し# サーバの設定に合わせて変更してください。# プロバイダによっては必要ない場合もあります。# (旧Telewayシリウスユーザは必要ないので削除してください)#----------------------------------------------------------------# Mychan's CGI SCRIPT "You're..." Ver1.02 (c) Mychan 1999/01/10#----------------------------------------------------------------# (この Perl スクリプトのパーミッションは 755 (711) としてください)# タイトルとコピーライト表記 (編集不可)$title = "[ You're... (Lite Edition) Ver1.02 (c) Mychan ]";$copyright = "Copyright (c)Mychan All Rights Reserved. 1999/01/10 Ver1.02";# ブラウザ表示色設定$body_bg_c = "bgcolor=\"#000000\"";  # バックグラウンドの色$body_text_c = "text=\"#00c0ff\"";   # テキスト色$fc_1 = "color=\"#ffff00\"";         # CGI環境変数値の色(タイプ１)$fc_2 = "color=\"#00ff88\"";         # CGI環境変数値の色(タイプ２)# 取得／表示させたい環境変数の設定$is_userinfo_cgi = 1;   # 0:取得しない／1:取得する (ユーザの利用環境情報)$is_ie3xinfo_cgi = 1;   # 0:取得しない／1:取得する (ユーザの利用環境情報：マイナーなもの)$is_ssi = 0;            # 0:CGIのみ／1:SSIとCGI両方(SSIが利用不可の場合は0)$is_userauth_cgi = 1;   # 0:取得しない／1:取得する (ユーザ認証機能関連)$is_proxy_cgi = 1;      # 0:取得しない／1:取得する (プロクシ関連)$is_serverinfo_cgi = 1; # 0:取得しない／1:取得する (サーバ環境情報)# 海外サーバ等で時差が生じる場合は修正してください# (例) 海外時間に＋９時間する場合： localtime(time + 9*60*60);($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);$date_ref = sprintf("%4d/%02d/%02d %02d:%02d:%02d",$year +1900,$mon +1,$mday,$hour,$min,$sec);&env_check;   # 環境変数の参照&http_disp;   # ブラウザ表示exit;sub env_check {        # 環境変数の参照        ##### ユーザの利用環境情報        #       REMOTE_HOST             リクエスト発行元のホスト名        #       REMOTE_ADDR             リクエスト発行元のＩＰアドレス        #       REMOTE_PORT             リクエスト発行元のポート番号        #       HTTP_HOST               ＨＴＴＰホスト名        #       HTTP_CONNECTION         Keep-Alive        #       HTTP_REFERER            アクセスされる前のリンク元ページのURL        #       HTTP_USER_AGENT         クライアントのブラウザ名、バージョン、付加情報        #       HTTP_ACCEPT             クライアントが受け付けるMIMEタイプ一覧        #       HTTP_ACCEPT_CHARSET     クライアントが受け付ける文字コードセット        #       HTTP_ACCEPT_LANGUAGE    クライアントが受け付ける言語        #       HTTP_FROM               クライアントの電子メールアドレス        if( $is_userinfo_cgi ){            $env_remote_host = &env_out( "REMOTE_HOST" , 1 );            $env_remote_addr = &env_out( "REMOTE_ADDR" , 1 );            $env_remote_port = &env_out( "REMOTE_PORT" , 1 );            $env_http_host = &env_out( "HTTP_HOST" , 1 );            $env_http_connection = &env_out( "HTTP_CONNECTION" , 1 );            $env_http_referer = &env_out( "HTTP_REFERER" , 1 );            $env_http_user_agent = &env_out( "HTTP_USER_AGENT" , 1 );            $env_http_accept = &env_out( "HTTP_ACCEPT" , 1 );            $env_http_accept_charset = &env_out( "HTTP_ACCEPT_CHARSET" , 1 );            $env_http_accept_language = &env_out( "HTTP_ACCEPT_LANGUAGE" , 1 );            $env_http_from = &env_out( "HTTP_FROM" , 2 );        }        ##### これらは、どマイナーな環境変数です        #   IE3.x を使っている、ある特定の環境に限って取得できるようです。        #       HTTP_UA_CPU     使用プロセッサ( x86 etc.)        #       HTTP_UA_COLOR   色数(color? で表示[?ビット色])        #       HTTP_UA_OS      使用ＯＳ        #       HTTP_UA_PIXELS  ディスプレイの解像度        if( $is_ie3xinfo_cgi ){            $env_http_ua_cpu = &env_out( "HTTP_UA_CPU" , 2 );            $env_http_ua_color = &env_out( "HTTP_UA_COLOR" , 2 );            $env_http_ua_os = &env_out( "HTTP_UA_OS" , 2 );            $env_http_ua_pixels = &env_out( "HTTP_UA_PIXELS" , 2 );        }        ##### ユーザ認証機能 関連        #       AUTH_TYPE               ユーザー認証機能のプロトコル名        #       REMOTE_USER             認証時のユーザー名        #       REMOTE_IDENT            リクエストを出しているユーザー(RFC 931認証技法)        if( $is_userauth_cgi ){            $env_auth_type = &env_out( "AUTH_TYPE" , 1 );            $env_remote_user = &env_out( "REMOTE_USER" , 1 );            $env_remote_ident = &env_out( "REMOTE_IDENT" , 1 );        }        ##### プロクシ関連        #  データが入ってたらプロクシ経由らしい        #       HTTP_VIA                        #       HTTP_CACHE_INFO                 #       HTTP_PROXY_CONNECTION           if( $is_proxy_cgi ){            $env_http_via = &env_out( "HTTP_VIA" , 3 );            $env_http_proxy_connection = &env_out( "HTTP_PROXY_CONNECTION" , 3 );            $env_http_cache_info = &env_out( "HTTP_CACHE_INFO" , 3 );        }        ##### サーバ情報        #       SERVER_NAME             WWWサーバーホスト名(またはIPアドレス)        #       SERVER_PROTOCOL         HTTPプロトコルのバージョン        #       SERVER_PORT             WWWサーバがHTTPの通信に使用しているTCPポート番号        #       SERVER_SOFTWARE         サーバーソフトウェア名/バージョン        #       GATEWAY_INTERFACE       WWWサーバが使用しているCGI/バージョン        #       SERVER_ADMIN            サーバ管理者の連絡先        if( $is_serverinfo_cgi ){            $env_server_name = &env_out( "SERVER_NAME" , 1 );            $env_server_protocol = &env_out( "SERVER_PROTOCOL" , 1 );            $env_server_port = &env_out( "SERVER_PORT" , 1 );            $env_server_software = &env_out( "SERVER_SOFTWARE" , 1 );            $env_gateway_interface = &env_out( "GATEWAY_INTERFACE" , 1 );            $env_server_admin = &env_out( "SERVER_ADMIN" , 1 );        }        ##### ここからは SSI 専用環境変数です(実行確認してません)        #       USER_NAME               ユーザ名        if( $is_ssi ){            $ssi_user_name = &env_out( "USER_NAME" , 4 );        }}sub env_out {        ##### 環境変数の呼び出し        #   書式   : &env_out( $env_name , $return_type );        #   Input  : $env_name   :環境変数名        #            $return_type:環境変数の返り値がなかったときの出力タイプ        #   Output : 環境変数の返り値(または、なかったよんメッセージ)        local( $env_name , $return_type ) = @_;        local( $env_data ) = $ENV{$env_name};  # 環境変数の取得        if( $env_data eq "" ){            # 返り値がなかった場合の処理(適当に編集してください)            if( $return_type == 1 ){ $env_data = "None...(T_T)"; }  # 出力タイプ１            if( $return_type == 2 ){ $env_data = "None...(^_^)"; }  # 出力タイプ２            if( $return_type == 3 ){ $env_data = "None..."; }       # 出力タイプ３            if( $return_type == 4 ){ $env_data = "None...(ToT)"; }  # 出力タイプ４        }        return $env_data;}sub http_disp {        ###### ブラウザ出力        #        #  自分の気に入った出力になるよう、好き勝手に編集してください(^^)        #        print "Content-type: text/html\n\n";        print "<!--  $copyright -->\n\n";  # この行は削除しないでください        print "<html>\n\n";        print "<head>\n";        print "<title>$title</title>\n";        print "<meta name=\"robots\" content=\"noindex,nofollow\">\n";        print "</head>\n\n";        print "<body $body_bg_c $body_text_c>\n";        #----- ユーザの利用環境情報        if( $is_userinfo_cgi ){            print "<h1>You are...</h1>\n\n";            #----- リクエスト発行元状態出力(1)            &http_print_env( "REMOTE_HOST" , $env_remote_host , 1 );            &http_print_env( "REMOTE_ADDR" , $env_remote_addr , 1 );            &http_print_env( "REMOTE_PORT" , $env_remote_port , 1 );            print "<br>\n";            #----- リクエスト発行元状態出力(2)            &http_print_env( "HTTP_HOST" , $env_http_host , 1 );            &http_print_env( "HTTP_CONNECTION" , $env_http_connection , 1 );            &http_print_env( "HTTP_REFERER" , $env_http_referer , 1 );            print "<br>\n";            #----- クライアントブラウザ環境関係の出力(1)            &http_print_env( "HTTP_USER_AGENT" , $env_http_user_agent , 1 );            &http_print_env( "HTTP_ACCEPT" , $env_http_accept , 1 );            &http_print_env( "HTTP_ACCEPT_CHARSET" , $env_http_accept_charset , 1 );            &http_print_env( "HTTP_ACCEPT_LANGUAGE" , $env_http_accept_language , 1 );            &http_print_env( "HTTP_FROM" , $env_http_from , 1 );            print "<br>\n";        }        #----- ユーザの利用環境情報：マイナーなもの        if( $is_ie3xinfo_cgi ){            #----- クライアントブラウザ環境関係の出力(2)            &http_print_env( "HTTP_UA_CPU" , $env_http_ua_cpu , 1 );            &http_print_env( "HTTP_UA_COLOR" , $env_http_ua_color , 1 );            &http_print_env( "HTTP_UA_OS" , $env_http_ua_os , 1 );            &http_print_env( "HTTP_UA_PIXELS" , $env_http_ua_pixels , 1 );            print "<br>\n";        }        #----- SSI 専用環境変数        if( $is_ssi ){            #----- クライアントブラウザ環境関係の出力(3)            &http_print_env( "USER_NAME" , $ssi_user_name , 1 );            print "<br>\n";        }        #------ ユーザ認証機能関連出力        if( $is_userauth_cgi ){            print "<hr>\n";            print "<p><font size=5>User Authentication Information...</font></p>\n";            &http_print_env( "AUTH_TYPE" , $env_auth_type , 2 );            &http_print_env( "REMOTE_USER" , $env_remote_user , 2 );            &http_print_env( "REMOTE_IDENT" , $env_remote_ident , 2 );        }        #----- プロクシ関連        if( $is_proxy_cgi ){            print "<hr>\n";            print "<p><font size=5>PROXY Information...</font></p>\n";            &http_print_env( "HTTP_VIA" , $env_http_via , 1 );            &http_print_env( "HTTP_PROXY_CONNECTION" , $env_http_proxy_connection , 1 );            &http_print_env( "HTTP_CACHE_INFO" , $env_http_cache_info , 1 );        }        #----- サーバ情報        if( $is_serverinfo_cgi ){            print "<hr>\n";            print "<p><font size=5>SERVER Information...</font></p>\n";            &http_print_env( "SERVER_NAME" , $env_server_name , 2 );            &http_print_env( "SERVER_PROTOCOL" , $env_server_protocol , 2 );            &http_print_env( "SERVER_PORT" , $env_server_port , 2 );            &http_print_env( "SERVER_SOFTWARE" , $env_server_software , 2 );            &http_print_env( "GATEWAY_INTERFACE" , $env_gateway_interface , 2 );            &http_print_env( "SERVER_ADMIN" , $env_server_admin , 2 );        }        print "<br>\n";        print "<p align=right><i>[ $date_ref ]</i></p>\n";        print "<p align=right><i>$title</i></p>\n";   # この行は削除しないでください        print "</body>\n\n";        print "</html>\n";}sub http_print_env {        ##### 環境変数のブラウザ出力        #   書式   : &http_print_env( $env_name , $env_data , $print_type );        #   Input  : $env_name   :環境変数名        #            $env_data   :環境変数の返り値        #            $print_type :ブラウザ出力タイプ        #   Output : ブラウザ出力(print文)        local( $env_name , $env_data , $print_type ) = @_;        # ブラウザ出力・・・好き勝手に編集してください(^^)        if( $print_type == 1 ){ print "<p>[ $env_name ]<br><font $fc_1><strong>$env_data</strong></font></p>\n"; }        if( $print_type == 2 ){ print "<p>[ $env_name ]<br><font $fc_2><strong>$env_data</strong></font></p>\n"; }}