#!/usr/bin/perl # Visitor Information - Process Countries # By Brian Prentice # August 1997 $VisitorFile = "/var/www/html/$ARGV[0]/VisitorInfo/$ARGV[1]"; if (!(-e $VisitorFile)) { exit(1); } %CountryCodes = ( AC => 'Ascension Island', AD => 'Andorra', AE => 'United Arab Emirates', AF => 'Afghanistan', AG => 'Antigua and Barbuda', AI => 'Anguilla', AL => 'Albania', AM => 'Armenia', AN => 'Netherlands Antilles', AO => 'Angola', AQ => 'Antarctica', AR => 'Argentina', AS => 'American Samoa', AT => 'Austria', AU => 'Australia', AW => 'Aruba', AX => 'Aland Islands', AZ => 'Azerbaijan', BA => 'Bosnia and Herzegovina', BB => 'Barbados', BD => 'Bangladesh', BE => 'Belgium', BF => 'Burkina Faso', BG => 'Bulgaria', BH => 'Bahrain', BI => 'Burundi', BJ => 'Benin', BM => 'Bermuda', BN => 'Brunei Darussalam', BO => 'Bolivia', BR => 'Brazil', BS => 'Bahamas', BT => 'Bhutan', BV => 'Bouvet Island', BW => 'Botswana', BY => 'Belarus', BZ => 'Belize', CA => 'Canada', CC => 'Cocos (Keeling) Islands', CD => 'Congo Democratic Republic', CF => 'Central African Republic', CG => 'Congo', CH => 'Switzerland', CI => 'Cote D\'Ivoire (Ivory Coast)', CK => 'Cook Islands', CL => 'Chile', CM => 'Cameroon', CN => 'China', CO => 'Colombia', CR => 'Costa Rica', CS => 'Czechoslovakia (former)', CU => 'Cuba', CV => 'Cape Verde', CX => 'Christmas Island', CY => 'Cyprus', CZ => 'Czech Republic', DE => 'Germany', DJ => 'Djibouti', DK => 'Denmark', DM => 'Dominica', DO => 'Dominican Republic', DZ => 'Algeria', EC => 'Ecuador', EE => 'Estonia', EG => 'Egypt', EH => 'Western Sahara', ER => 'Eritrea', ES => 'Spain', ET => 'Ethiopia', EU => 'European Union', FI => 'Finland', FJ => 'Fiji', FK => 'Falkland Islands (Malvinas)', FM => 'Micronesia', FO => 'Faroe Islands', FR => 'France', FX => 'France, Metropolitan', GA => 'Gabon', GB => 'Great Britain (UK)', GD => 'Grenada', GE => 'Georgia', GF => 'French Guiana', GG => 'Guernsey', GH => 'Ghana', GI => 'Gibraltar', GL => 'Greenland', GM => 'Gambia', GN => 'Guinea', GP => 'Guadeloupe', GQ => 'Equatorial Guinea', GR => 'Greece', GS => 'S. Georgia and S. Sandwich Isls.', GT => 'Guatemala', GU => 'Guam', GW => 'Guinea-Bissau', GY => 'Guyana', HK => 'Hong Kong', HM => 'Heard and McDonald Islands', HN => 'Honduras', HR => 'Croatia (Hrvatska)', HT => 'Haiti', HU => 'Hungary', ID => 'Indonesia', IE => 'Ireland', IL => 'Israel', IM => 'Isle of Man', IN => 'India', IO => 'British Indian Ocean Territory', IQ => 'Iraq', IR => 'Iran', IS => 'Iceland', IT => 'Italy', JE => 'Jersey', JM => 'Jamaica', JO => 'Jordan', JP => 'Japan', KE => 'Kenya', KG => 'Kyrgyzstan', KH => 'Cambodia', KI => 'Kiribati', KM => 'Comoros', KN => 'Saint Kitts and Nevis', KP => 'Korea (North)', KR => 'Korea (South)', KW => 'Kuwait', KY => 'Cayman Islands', KZ => 'Kazakhstan', LA => 'Laos', LB => 'Lebanon', LC => 'Saint Lucia', LI => 'Liechtenstein', LK => 'Sri Lanka', LR => 'Liberia', LS => 'Lesotho', LT => 'Lithuania', LU => 'Luxembourg', LV => 'Latvia', LY => 'Libya', MA => 'Morocco', MC => 'Monaco', MD => 'Moldova', ME => 'Montenegro', MF => 'Saint Martin', MG => 'Madagascar', MH => 'Marshall Islands', MK => 'Macedonia', ML => 'Mali', MM => 'Myanmar', MN => 'Mongolia', MO => 'Macau', MP => 'Northern Mariana Islands', MQ => 'Martinique', MR => 'Mauritania', MS => 'Montserrat', MT => 'Malta', MU => 'Mauritius', MV => 'Maldives', MW => 'Malawi', MX => 'Mexico', MY => 'Malaysia', MZ => 'Mozambique', NA => 'Namibia', NC => 'New Caledonia', NE => 'Niger', NF => 'Norfolk Island', NG => 'Nigeria', NI => 'Nicaragua', NL => 'Netherlands', NO => 'Norway', NP => 'Nepal', NR => 'Nauru', NT => 'Neutral Zone', NU => 'Niue', NZ => 'New Zealand (Aotearoa)', OM => 'Oman', PA => 'Panama', PE => 'Peru', PF => 'French Polynesia', PG => 'Papua New Guinea', PH => 'Philippines', PK => 'Pakistan', PL => 'Poland', PM => 'St. Pierre and Miquelon', PN => 'Pitcairn', PR => 'Puerto Rico', PS => 'Palestinian Territory', PT => 'Portugal', PW => 'Palau', PY => 'Paraguay', QA => 'Qatar', RE => 'Reunion', RS => 'Serbia', RO => 'Romania', RU => 'Russian Federation', RW => 'Rwanda', SA => 'Saudi Arabia', SB => 'Solomon Islands', SC => 'Seychelles', SD => 'Sudan', SE => 'Sweden', SG => 'Singapore', SH => 'St. Helena', SI => 'Slovenia', SJ => 'Svalbard and Jan Mayen Islands', SK => 'Slovak Republic', SL => 'Sierra Leone', SM => 'San Marino', SN => 'Senegal', SO => 'Somalia', SR => 'Suriname', ST => 'Sao Tome and Principe', SU => 'USSR (former)', SV => 'El Salvador', SY => 'Syria', SZ => 'Swaziland', TC => 'Turks and Caicos Islands', TD => 'Chad', TF => 'French Southern Territories', TG => 'Togo', TH => 'Thailand', TJ => 'Tajikistan', TK => 'Tokelau', TM => 'Turkmenistan', TN => 'Tunisia', TO => 'Tonga', TP => 'East Timor', TR => 'Turkey', TT => 'Trinidad and Tobago', TV => 'Tuvalu', TW => 'Taiwan', TZ => 'Tanzania', UA => 'Ukraine', UG => 'Uganda', UK => 'United Kingdom', UM => 'US Minor Outlying Islands', US => 'United States', UY => 'Uruguay', UZ => 'Uzbekistan', VA => 'Vatican City State (Holy See)', VC => 'Saint Vincent and the Grenadines', VE => 'Venezuela', VG => 'Virgin Islands (British)', VI => 'Virgin Islands (U.S.)', VN => 'Viet Nam', VU => 'Vanuatu', WF => 'Wallis and Futuna Islands', WS => 'Samoa', XK => 'Kosovo', YE => 'Yemen', YT => 'Mayotte', YU => 'Yugoslavia', ZA => 'South Africa', ZM => 'Zambia', ZR => 'Zaire', ZW => 'Zimbabwe', ); open(FILE, "<$VisitorFile"); $firstline = ; if ($firstline !~ "^\n") { close(FILE); exit(1); } print "Content-type: text/html\n\n"; print "\n"; print "Visitor Information\n"; print "
\n"; print "

Visitor Information

\n"; print "\n"; while () { if (/\.\D\D$/) { /\.(\D\D$)/; $Country = $1; $Country =~ tr/a-z/A-Z/; $Country = $CountryCodes{$Country}; if ($Country ne '') { $Counts{$Country}++; } } } print "\n"; $NoCountries = 0; foreach $Country (sort SortFunction keys %Counts) { print "\n"; $NoCountries++; } print "\n"; print "
CountryVisits
", $Country, "", $Counts{$Country}, "
Visits from " . $NoCountries . " countr" . (($NoCountries == 1) ? "y" : "ies") . "
\n"; exit(0); sub SortFunction { $Counts{$b} <=> $Counts{$a} or $a cmp $b; }