#!/usr/bin/perl5 # status.cgi # Copyright 2002 - JP Software, Inc. - webmaster@jpsoft.com ############################################################################## $date = `date -u`; chop($date); $server_URL ="http://$ENV{'SERVER_NAME'}"; if ($ENV{'HTTP_REFERER'}) { if ( $ENV{'HTTP_REFERER'} eq "\[unknown origin\]" ) { $return = "$server_URL/" } else { $return = $ENV{'HTTP_REFERER'}; } $referer = $ENV{'HTTP_REFERER'}; } else { $return = "$server_URL/"; $referer= "$server_URL$ENV{'DOCUMENT_URI'}" ; } print "Content-type: text/html\n\n"; open (FILE, "../jphead.ssi"); print ; close (FILE); open (FILE, "../jpstyle.ssi"); print ; close (FILE); print "\n"; print "\n"; print "\n"; if ($ENV{'HTTP_REFERER'} ) { $current = "\$ENV{'HTTP_REFERER'}\<\/A>"; } else { $current = $referer; } if ( $ENV{'HTTP_REFERER'} eq "\[unknown origin\]" ) { $return = "$server_URL/" } print "IP Status - JP Software\n"; open (FILE, "../jptop.ssi"); print ; close (FILE); print "\n"; print "
\"$ENV{'REMOTE_ADDR'}
\n"; if ($ENV{'QUERY_STRING'}) { $addr = $ENV{'QUERY_STRING'}; $host = $ENV{'QUERY_STRING'}; $return = "$server_URL/"; print "

IP / Name Lookup for \"$addr\"

\n"; } else { $addr = $ENV{'REMOTE_ADDR'}; $host = $ENV{'REMOTE_HOST'}; print "

Your Numeric IP is \"$addr\"

\n"; } @fields = split(/\./, $addr); if ( "$fields[3]" ne "" ) { $ip=($fields[0]*16777216)+($fields[1]*65536)+($fields[2]*256)+$fields[3]; print "

Packed (dword) IP is \"$ip\"

\n"; } $x = `nslookup $addr | head -n6`; if ($x) { $x =~ s/Server:.+//; $x =~ s/Address:.+//; $x =~ s/\n/\/g; $x =~ s/\\\//g; print "

$x

\n"; } if (! $ENV{'QUERY_STRING'}) { print "
  • Server ($ENV{'HTTP_HOST'}) uptime:\n"; $x = `uptime | cut -c 12- | cut -f 1-2 -d,`; print "$x
\n"; print "
  • Environment:

      \n"; foreach $key (sort keys %ENV) { if ( $key eq DOCUMENT_ROOT || $key eq PATH || $key eq SCRIPT_FILENAME || $key eq USER ) { print $key, " = (suppressed for security)
      \n"; } else { print $key, " = ", $ENV{$key}, "
      \n"; } } print "
\n"; } $x = `grep -his "$host" /usr/local/etc/httpd/logs/jpsoft/access_log`; if ($x) { $x =~ s/\n/
\n/g; $x =~ s/$host/$host<\/FONT>/g; print "
  • Recent Accesses for $host:

      \n"; print "$x

\n"; } $x = `grep -his "$host" /usr/local/etc/httpd/logs/jpsoft/error_log`; if ($x) { $x =~ s/\n/
\n/g; $x =~ s/$host/$host<\/FONT>/g; print "

  • Recent Errors for $host:

      \n"; print "$x

\n"; } print "

\n"; print "\n"; print "
"; print ''; print '
'; print "Tip: This script can also be invoked to lookup a host name or a numeric IP (dotted-decimal, dword, or octal):
\n"; print "      $server_URL$ENV{'SCRIPT_NAME'}?jpsoft.net
"; print "      $server_URL$ENV{'SCRIPT_NAME'}?192.220.109.228
"; print "      $server_URL$ENV{'SCRIPT_NAME'}?3235671524
"; print "      $server_URL$ENV{'SCRIPT_NAME'}?0300.0334.0155.0344
"; print "      etc...
"; print "All queries are logged. You're on your own for hex, mixed, and other formats!
"; print "
"; print "(Generated by \"$^X $]\" on \"$date\" for \"$ENV{'REMOTE_ADDR'}\".)
\n"; open (FILE, "../jpfoot2.ssi"); print ; close (FILE);