1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
|
# Print the country name in /WHOIS replies
# /COUNTRY <code> 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 <country code>");
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;
}
|