# Print the country name in /WHOIS replies # /COUNTRY prints the name for the country code # Installation: Add $whois_country somewhere in your /FORMAT whois line use strict; use Irssi 20021028; use vars qw($VERSION %IRSSI); $VERSION = "1.0.1"; %IRSSI = ( authors => "Timo Sirainen", contact => "tss\@iki.fi", name => "country", description => "Print the country name in /WHOIS replies", license => "Public Domain", changed => "Mon Oct 28 00:29:26 EET 2002" ); my %countries; my $last_country = ""; sub sig_whois { my ($server, $data, $nick, $host) = @_; my ($me, $nick, $user, $host) = split(" ", $data); if ($host =~ /\.([a-zA-Z]+)$/) { $last_country = $countries{lc $1}; } else { $last_country = ""; } } sub expando_whois_country { return $last_country; } sub cmd_country { my $country = lc shift; if ($country eq "") { Irssi::print("USAGE: /COUNTRY "); return; } my $name = $countries{$country}; if (!$name) { Irssi::print("Unknown country code: $country"); } else { Irssi::print("$country is $name"); } } Irssi::command_bind('country', \&cmd_country); Irssi::signal_add_first('event 311', \&sig_whois); Irssi::expando_create('whois_country', \&expando_whois_country, { 'event 311' => 'None' } ); my $countryfile = ' # list taken from http://www.iana.org/cctld/cctld-whois.htm # on 27-10-2002 by Lam 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 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 of the cf Central African Republic cg Congo Republic of ch Switzerland ci Cote d\\\'Ivoire ck Cook Islands cl Chile cm Cameroon cn China co Colombia cr Costa Rica cu Cuba cv Cap 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 fi Finland fj Fiji fk Falkland Islands (Malvina) fm Micronesia Federal State of fo Faroe Islands fr France ga Gabon 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 South Georgia and the South Sandwich Islands 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 (Islamic Republic of) 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 Democratic People\\\'s Republic kr Korea Republic of kw Kuwait ky Cayman Islands kz Kazakhstan la Lao People\\\'s Democratic Republic lb Lebanon lc Saint Lucia li Liechtenstein lk Sri Lanka lr Liberia ls Lesotho lt Lithuania lu Luxembourg lv Latvia ly Libyan Arab Jamahiriya ma Morocco mc Monaco md Moldova Republic of mg Madagascar mh Marshall Islands mk Macedonia Former Yugoslav Republic 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 nu Niue nz New Zealand 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 Island pr Puerto Rico ps Palestinian Territories pt Portugal pw Palau py Paraguay qa Qatar re Reunion Island 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 sv El Salvador sy Syrian Arab Republic 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 Holy See (City Vatican State) vc Saint Vincent and the Grenadines ve Venezuela vg Virgin Islands (British) vi Virgin Islands (USA) vn Vietnam vu Vanuatu wf Wallis and Futuna Islands ws Western Samoa ye Yemen yt Mayotte yu Yugoslavia za South Africa zm Zambia zw Zimbabwe # these are my own inventions com commercial net network org organisation edu educational mil military gov government aero air-transport biz business coop cooperative info informative museum museum name individual pro profession '; foreach my $line (split(/\n/, $countryfile)) { chomp $line; next if ($line =~ /^#/ || $line eq ""); my ($code, $name) = split(/\t/, $line); $countries{$code} = $name; }