#!/usr/local/bin/perl
#
$title = '"#**ccff"';
$http = '"#ccffcc"';
$proxy = '"#ccff**"';
$remote = '"#ffcccc"';
$other = '"#ffffcc"';
$warn = '"#ff****"';
$java = '"#66**cc"';
print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>CGI ENVIRONMENT</TITLE></HEAD>\n";
print "<BODY BGCOLOR=\"#ffffff\">\n";
print "<H* ALIGN=center>CGI ENVIRONMENT</H*>\n";
print "<HR>\n";
print "<BR>\n";
$host = !$ENV{'REMOTE_HOST'}||$ENV{'REMOTE_HOST'}eq$ENV{'REMOTE_ADDR'}?gethostbyaddr(pack('C4',split(/\./,$ENV{'REMOTE_ADDR'})),2)||$ENV{'REMOTE_ADDR'}:$ENV{'REMOTE_HOST'};
print "REMOTE_HOST = $host<BR>\n";
if ( defined $ENV{'HTTP_X_FORWARDED_FOR'} ) {
@ip = split( /[, ]+/, $ENV{'HTTP_X_FORWARDED_FOR'} );
foreach (@ip) {
if ( m/^[0-*.]+$/ ) { $ip .= (gethostbyaddr(pack('C4',split(/\./,$_)),2)||$_) . ' -> '; }
else { $ip .= "$_ -> "; }
}
$ip =~ s/ -> $//;
print "HTTP_X_FORWARDED_FOR = $ip<BR>\n";
}
print "HTTP_FROM = $ENV{'HTTP_FROM'}<BR>\n" if defined $ENV{'HTTP_FROM'};
print "<BR>\n";
print "<HR>\n";
print "<BR>\n";
print "<TABLE BORDER=*>\n";
print "<TR><TH BGCOLOR=$title>ENVIRONMENT<TH BGCOLOR=$title>VALUE</TR>\n";
foreach $key (sort (keys %ENV)) {
if ( $key ne 'PATH' &&
$key ne 'SCRIPT_FILENAME' &&
$key ne 'REQUEST_URI' &&
$key ne 'SCRIPT_FILENAME' &&
$key ne 'SCRIPT_NAME' &&
$key ne 'SERVER_ADDR' &&
$key ne 'SERVER_ADMIN' &&
$key ne 'SERVER_NAME' &&
$key ne 'SERVER_PORT' &&
$key ne 'SERVER_PROTOCOL' &&
$key ne 'SERVER_SIGNATURE' &&
$key ne 'SERVER_SOFTWARE' &&
$key ne 'DOCUMENT_ROOT' ) {
if ( $key =~ /^HTTP_/ ) {
if ( $key eq 'HTTP_ACCEPT' ||
$key eq 'HTTP_ACCEPT_CHARSET' ||
$key eq 'HTTP_ACCEPT_LANGUAGE' ||
$key eq 'HTTP_ACCEPT_ENCODING' ||
$key eq 'HTTP_CONNECTION' ||
$key eq 'HTTP_COOKIE' ||
$key eq 'HTTP_IF_MODIFIED_SINCE' ||
$key eq 'HTTP_HOST' ||
$key eq 'HTTP_PRAGMA' ||
$key eq 'HTTP_REFERER' ||
$key eq 'HTTP_UA_COLOR' ||
$key eq 'HTTP_UA_CPU' ||
$key eq 'HTTP_UA_OS' ||
$key eq 'HTTP_UA_PIXELS' ) {
print "<TR><TD BGCOLOR=$http>$key<TD BGCOLOR=$http>$ENV{$key}</TR>\n";
}
elsif ( $key eq 'HTTP_USER_AGENT' ) {
$ENV{$key} =~ s%\bvia\b%<FONT COLOR=$warn>$&</FONT>%i;
$ENV{$key} =~ s%\bproxy\b%<FONT COLOR=$warn>$&</FONT>%i;
$ENV{$key} =~ s%\bgateway\b%<FONT COLOR=$warn>$&</FONT>%i;
$ENV{$key} =~ s%\bTuring\b%<FONT COLOR=$warn>$&</FONT>%i;
$ENV{$key} =~ s%\bANONYM%<FONT COLOR=$warn>$&</FONT>%i;
print "<TR><TD BGCOLOR=$http>$key<TD BGCOLOR=$http>$ENV{$key}</TR>\n";
}
elsif ( $key eq 'HTTP_FROM' ) {
print "<TR><TD BGCOLOR=$http>$key<TD BGCOLOR=$http><FONT COLOR=$warn>$ENV{$key}</FONT></TR>\n";
}
else {
print "<TR><TD BGCOLOR=$proxy>$key<TD BGCOLOR=$proxy>$ENV{$key}</TR>\n";
}
}
elsif ( $key =~ /^REMOTE_/ ) {
print "<TR><TD BGCOLOR=$remote>$key<TD BGCOLOR=$remote>$ENV{$key}</TR>\n";
}
else {
print "<TR><TD BGCOLOR=$other>$key<TD BGCOLOR=$other>$ENV{$key}</TR>\n";
}
}
}
print "</TABLE>\n";
print "<BR><HR><BR>\n";
print "</BODY></HTML>\n";