home *** CD-ROM | disk | FTP | other *** search
/ Internet 1996 World Exposition / park.org.s3.amazonaws.com.7z / park.org.s3.amazonaws.com / main.cgi < prev    next >
Text File  |  2017-09-21  |  8KB  |  294 lines

  1. #!/usr/local/bin/perl
  2. #
  3. #  file: index.cgi
  4. #  desc: generate default index page based upon browser type
  5. #
  6.  
  7. eval 'exec /usr/local/bin/perl -s $0 ${1+"$@"}'
  8.   if 0;
  9.  
  10. # map of server host names to host.park.org domain
  11. %host2park = (
  12. 'town',      'park.org',
  13. 'ventus',    'adelaide.park.org',
  14. 'amsterdam', 'amsterdam.park.org',
  15. 'phoenix',   'imperial.park.org',
  16. 'iwe',       'japan.park.org',
  17. 'seoul',     'korea.park.org',
  18. );
  19.  
  20. # get FQDN park.org host name for this particular server
  21. chop($park_host = `/sbin/uname -n`);
  22. $park_host = $host2park{(split(/\./, $park_host))[0]};
  23.  
  24. # non-buffered STDOUT
  25. $| = 1;
  26.  
  27. # attempt to redirect based upon incoming domain
  28. $rem_host = $ENV{'REMOTE_HOST'};
  29. $rem_addr = $ENV{'REMOTE_ADDRESS'};
  30. if ($rem_host) {
  31.     if ($park_host !~ /japan/ && $rem_host =~ /\.jp$/i) {
  32.         &redirect("http://japan.park.org/bandwidth.cgi");
  33.     } elsif ($park_host !~ /imperial/ && $rem_host =~ /\.uk$/i) {
  34.         &redirect("http://imperial.park.org/bandwidth.cgi");
  35.     } elsif ($park_host !~ /adelaide/ && $rem_host =~ /\.au$/i) {
  36.         &redirect("http://adelaide.park.org/bandwidth.cgi");
  37.     } elsif ($park_host !~ /seoul/ && $rem_host =~ /\.kr$/i) {
  38.         &redirect("http://korea.park.org/bandwidth.cgi");
  39.     } elsif ($park_host !~ /amsterdam/ &&
  40.              (
  41.               ($rem_host =~ /\.al$|\.am$|\.at$|\.az$/i) ||
  42.               ($rem_host =~ /\.be$|\.bg$|\.by$/i)       ||
  43.               ($rem_host =~ /\.ch$|\.cy$|\.cz$/i)       ||
  44.               ($rem_host =~ /\.dz$/i)                   ||
  45.               ($rem_host =~ /\.eg$|\.es$/i)             ||
  46.               ($rem_host =~ /\.ge$|\.gr$/i)             ||
  47.               ($rem_host =~ /\.hr$|\.hu$/i)             ||
  48.               ($rem_host =~ /\.ie$/i)                   ||
  49.               ($rem_host =~ /\.li$/i)                   ||
  50.               ($rem_host =~ /\.ma$|\.md$|\.mk$|\.mt$/i) ||
  51.               ($rem_host =~ /\.nl$/i)                   ||
  52.               ($rem_host =~ /\.pt$/i)                   ||
  53.               ($rem_host =~ /\.ro$|\.ru$/i)             ||
  54.               ($rem_host =~ /\.si$|\.sk$|\.su$/i)       ||
  55.               ($rem_host =~ /\.tn$/i)                   ||
  56.               ($rem_host =~ /\.ua$/i)                   ||
  57.               ($rem_host =~ /\.va$/i)                   ||
  58.               ($rem_host =~ /\.yu$/i)
  59.              ) ) {
  60.         &redirect("http://amsterdam.park.org/bandwidth.cgi");
  61.     }
  62. }
  63.  
  64.  
  65. # make sure we print MIME type
  66. print "Content-Type: text/html\n\n";
  67.  
  68. # who am i?
  69. ($prog = $0) =~ s#.*/##;
  70.  
  71. # which client type?
  72. $_ = $ENV{'HTTP_USER_AGENT'};
  73.  
  74. # generate page based upon browser type
  75. if (
  76.     /^aolbrowser\/1\.0/ ||
  77.     /^Cello/ ||
  78.     /^Chimera\/1/ ||
  79.     /^CyberJack/ ||
  80.     /^IBM WebExplorer/ ||
  81.     /^Lynx/ ||
  82.     /^Midas/ ||
  83.     m#NCSA_Mosaic/.*\(X11# ||
  84.     /NetCruiser/ ||
  85.     /^PRODIGY-WB\/1\.4/ ||
  86.     /TkWWW/
  87.    ) {
  88.  
  89.     &low_bandwidth();    # text-only or brain-dead browsers
  90.  
  91. } elsif (/Explorer\/4\.40\.308/ ) {
  92.  
  93.     &old_microsoft_browser_html();  # older (pre-HTML 3.0) browsers
  94.  
  95. } elsif (/^Mozilla\/1\.0/ ) {
  96.     &old_browser_html();  # older (pre-HTML 2.0) browsers
  97.  
  98. } else {
  99.  
  100.     &high_bandwidth();      # default - HTML 3.0 and netscape 2.x
  101. }
  102.  
  103. exit 0;
  104.  
  105.  
  106. #
  107. # generate html index page for text-only or brain-dead browsers
  108. #
  109. sub low_bandwidth {
  110.  
  111. print <<EoI;
  112.  
  113. <HTML>
  114. <HEAD>
  115. <TITLE>Internet 1996 World Exposition</TITLE>
  116. <base href="http://$park_host/">
  117. </HEAD>
  118.  
  119.  
  120. <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#97694F" VLINK="#42426f">
  121.  
  122. <a href="/About/index.text.html">
  123. <img align="left" width="533" height=127
  124. ALT="[INTERNET 1996 WORLD EXPOSITION]" 
  125. SRC="/Images/fair_header.gif" border="0">
  126. </a>
  127. <br clear="all">
  128.  
  129.  
  130.  
  131. <p>
  132. <h1><a href="/About/Fair/index.text.html">Welcome to the Fair!</a></h1>
  133. <p>
  134. You've reached the text and simple graphics version of the Internet 1996
  135. World Exposition.  If your browser has support for tables, you might
  136. want to visit the high-bandwidth theater <a href="main.html">version of the fair.</a>
  137.  
  138. <P>
  139. <hr>
  140.  
  141. <p align="center">
  142. <a href="http://www.cyber24.com">Coming Feb. 8: 24 Hours in Cyberspace!</a></h3>
  143.  
  144. <hr>
  145.  
  146. <img align="left" ALT="[Antique Postcard]" SRC="/Images/postcard_02.jpg" width="200" height="78" border="0"><br>
  147. <p>
  148. <ul>
  149. <li><a href="/Pavilions/index.text.html">Pavilions</a>
  150. <li><a href="/Regions/index.text.html">Regions</a>
  151. <li><a href="/Places/index.text.html">Places</a>
  152. <li><a href="/Events/index.text.html">Events</a>
  153. <li><a href="http://park.org/cgi-bin/form-mail.fairmaster?Feedback">Feedback (Forms)</a>
  154. <li><a href="mailto:fairmaster\@park.org">Feedback (No Forms)</a>
  155. <li><a href="/Letters/index.text.html">Letters of Support</a>
  156. <li><a href="/Sponsors/index.text.html">Our Sponsors</a>
  157. </ul>
  158.  
  159. <a href="/cgi-bin/imagemap/Images/htoolbar.text.map">
  160. <img align="left" width="486" height="101" alt="[Unreadable Image]"
  161. SRC="/Images/htoolbar.gif" ISMAP border="0"></a>
  162. <br clear="all">
  163.  
  164. <a href="/About/index.text.html">[About the Fair]</a> <a href="/Sponsors/index.text.html">[Sponsors]</a>
  165.  <a href="/WhatsNew/index.text.html">[What's New]</a> <a href="http://park.org/Tools/Guestbook/index.text.html">[Guestbook]</a>
  166.  <a href="/Tools/index.text.html">[Toolbox]</a>
  167.  
  168. </body>
  169. </HTML>
  170.  
  171. EoI
  172.  
  173. }
  174.  
  175.  
  176.  
  177. #
  178. # generate html index page for pre HTML 3.0 browsers (e.g., netscape 1.0)
  179. #
  180. sub old_microsoft_browser_html {
  181. print <<EoI;
  182.  
  183. <HTML>
  184. <HEAD>
  185. <TITLE>Internet 1996 World Exposition</TITLE>
  186. <base href="http://$park_host/">
  187. </HEAD>
  188.  
  189. <BODY BGCOLOR="#FFFFFF" background="/Images/expo_bk_main.gif" TEXT="#000000" LINK="#97694F" VLINK
  190. ="#42426f">
  191.  
  192. <a href="/cgi-bin/imagemap/Images/main_masthead.map">
  193. <img SRC="/Images/main_masthead.gif" ismap width="534" height="130" border="0"></a><br clear="all">
  194. <p>
  195.  
  196. <font size="+2"><b>Greetings!</b></font size="+2">
  197.  
  198. <p>
  199. Welcome to the Internet 1996 World Exposition!  We noticed that you are running an
  200. old version of the Microsoft Internet Explorer browser.  Our site will look much
  201. better if you upgrade to the current version, which fixes some problems with how
  202. tables are shown on your screen.
  203.  
  204. <p>
  205. <ul>
  206. <li><a href="http://www.msn.com/ie/ie.htm">Upgrade your software.</a>
  207. <li><a href="/main.html">Visit the fair with your current browser.</a> 
  208. </ul>
  209.  
  210. </body></html>
  211.  
  212. EoI
  213.  
  214. }
  215.  
  216. sub old_browser_html {
  217. print <<EoI;
  218.  
  219. <title>Your Browser Is Old</title>
  220. <h1>Your Browser</h1>
  221. </center>
  222. <p>
  223. Hello!
  224. <p>
  225. Welcome to the Internet 1996 World Exposition.
  226. We noticed that you are using an old version of your browser.
  227. We're terribly sorry, but your browser does not support
  228. the tables and other features that were used in building
  229. the Internet 1996 World Exposition.  Some of the ones we
  230. have tested include current versions of 
  231. <a href="http://home.netscape.com/comprod/mirror/index.html">Netscape Navigator,</a>
  232. <a href="http://www.msn.com/ie/ie.htm">Microsoft Internet Exporer,</a> and
  233. <a href="http://www.qdeck.com/qdeck/demosoft/QMosaic/" >Quarterdeck Mosaic.</a>
  234.  
  235. <p>
  236. We'd like to suggest that you look into upgrading your browser.
  237. In the mean time, please accept our regrets.
  238. If you'd like to try to look at the fair anyway, please
  239. <a href="/main.text.html">press here</a>
  240. for the "low bandwidth" version of the fair.
  241.  
  242. EoI
  243.  
  244. }
  245.  
  246.  
  247. #
  248. # generate default html index page (HTML 3.0 and netscape 2.0 enhancements)
  249. #
  250. sub high_bandwidth {
  251. print <<EoI;
  252. <!DOCTYPE HTML PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN">
  253. <HTML>
  254. <HEAD>
  255. <TITLE>Internet 1996 World Exposition</TITLE>
  256. <base href="http://$park_host/">
  257. </HEAD>
  258.  
  259. <BODY  BGCOLOR="#000000" TEXT="#ffffff" LINK="#d98719" VLINK="#97694F">
  260. <center>
  261. <a href="/cgi-bin/imagemap/Images/bandwidth.map">
  262. <img alt="[Try http://$park_host/main.text.html]" ISMAP src="/Images/tunnels.jpg" width="465" height="349" border="0" hspace="30" vspace="30" align="center"></a>
  263. <table cellpadding="5" width="465">
  264. <tr><td align="center" valign="top" width="235">
  265. <font size="-1">Choose <a href="main.html"><b>high</b></a> when connected with permanent Internet access or ISDN.</font>
  266. </td>
  267. <td align="center" valign="top" width="215">
  268. <font size="-1">Choose <a href="main.text.html"><b>low</b></a> when dialing in with a modem.</font>
  269. </td></tr></table>
  270. </center><br clear>
  271.  
  272. </body>
  273. </HTML>
  274. EoI
  275. }
  276.  
  277.  
  278. #
  279. # redirect to specified URL
  280. #
  281. sub redirect {
  282.     local($url) = shift;
  283.     local($logfile) = '/var/log/park-redirect.log';
  284.  
  285.     # keep track of redirected hosts for debugging
  286.     system("/bin/echo \"[`date`]: $rem_host -> $url\" >> $logfile");
  287.  
  288.     print "Status: 302\n";       # redirect status code
  289.     print "Location: $url\n\n";  # where they should go...
  290.  
  291.     exit 0;
  292. }
  293.  
  294.