fastgeoip 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ #ifndef __RUBY_GEOIP_H__
2
+ #define __RUBY_GEOIP_H__
3
+
4
+ #include <ruby.h>
5
+ #include <rubyio.h>
6
+ #include "GeoIP.h"
7
+
8
+ VALUE cFastGeoIP;
9
+ VALUE eFastGeoIPError;
10
+
11
+ typedef struct fast_geoip {
12
+ GeoIP *db;
13
+ } fast_geoip;
14
+
15
+ #endif
@@ -0,0 +1,941 @@
1
+ #include <string.h>
2
+ const char* GeoIP_time_zone_by_country_and_region(const char * country,const char * region) {
3
+ const char* timezone = NULL;
4
+ if (country == NULL) {
5
+ return NULL;
6
+ }
7
+ if (region == NULL) {
8
+ region = "";
9
+ }
10
+ if ( strcmp (country, "AD") == 0 ) {
11
+ timezone = "Europe/Andorra";
12
+ }
13
+ else if ( strcmp (country, "AE") == 0 ) {
14
+ timezone = "Asia/Dubai";
15
+ }
16
+ else if ( strcmp (country, "AF") == 0 ) {
17
+ timezone = "Asia/Kabul";
18
+ }
19
+ else if ( strcmp (country, "AG") == 0 ) {
20
+ timezone = "America/Antigua";
21
+ }
22
+ else if ( strcmp (country, "AI") == 0 ) {
23
+ timezone = "America/Anguilla";
24
+ }
25
+ else if ( strcmp (country, "AL") == 0 ) {
26
+ timezone = "Europe/Tirane";
27
+ }
28
+ else if ( strcmp (country, "AM") == 0 ) {
29
+ timezone = "Asia/Yerevan";
30
+ }
31
+ else if ( strcmp (country, "AN") == 0 ) {
32
+ timezone = "America/Curacao";
33
+ }
34
+ else if ( strcmp (country, "AO") == 0 ) {
35
+ timezone = "Africa/Luanda";
36
+ }
37
+ else if ( strcmp (country, "AR") == 0 ) {
38
+ timezone = "America/Mendoza";
39
+ }
40
+ else if ( strcmp (country, "AS") == 0 ) {
41
+ timezone = "US/Samoa";
42
+ }
43
+ else if ( strcmp (country, "AT") == 0 ) {
44
+ timezone = "Europe/Vienna";
45
+ }
46
+ else if ( strcmp (country, "AU") == 0 ) {
47
+ if ( strcmp (region, "01") == 0 ) {
48
+ timezone = "Australia/Canberra";
49
+ }
50
+ else if ( strcmp (region, "02") == 0 ) {
51
+ timezone = "Australia/NSW";
52
+ }
53
+ else if ( strcmp (region, "03") == 0 ) {
54
+ timezone = "Australia/North";
55
+ }
56
+ else if ( strcmp (region, "04") == 0 ) {
57
+ timezone = "Australia/Queensland";
58
+ }
59
+ else if ( strcmp (region, "05") == 0 ) {
60
+ timezone = "Australia/South";
61
+ }
62
+ else if ( strcmp (region, "06") == 0 ) {
63
+ timezone = "Australia/Tasmania";
64
+ }
65
+ else if ( strcmp (region, "07") == 0 ) {
66
+ timezone = "Australia/Victoria";
67
+ }
68
+ else if ( strcmp (region, "08") == 0 ) {
69
+ timezone = "Australia/West";
70
+ }
71
+ }
72
+ else if ( strcmp (country, "AW") == 0 ) {
73
+ timezone = "America/Aruba";
74
+ }
75
+ else if ( strcmp (country, "AX") == 0 ) {
76
+ timezone = "Europe/Mariehamn";
77
+ }
78
+ else if ( strcmp (country, "AZ") == 0 ) {
79
+ timezone = "Asia/Baku";
80
+ }
81
+ else if ( strcmp (country, "BA") == 0 ) {
82
+ timezone = "Europe/Sarajevo";
83
+ }
84
+ else if ( strcmp (country, "BB") == 0 ) {
85
+ timezone = "America/Barbados";
86
+ }
87
+ else if ( strcmp (country, "BD") == 0 ) {
88
+ timezone = "Asia/Dhaka";
89
+ }
90
+ else if ( strcmp (country, "BE") == 0 ) {
91
+ timezone = "Europe/Brussels";
92
+ }
93
+ else if ( strcmp (country, "BF") == 0 ) {
94
+ timezone = "Africa/Ouagadougou";
95
+ }
96
+ else if ( strcmp (country, "BG") == 0 ) {
97
+ timezone = "Europe/Sofia";
98
+ }
99
+ else if ( strcmp (country, "BH") == 0 ) {
100
+ timezone = "Asia/Bahrain";
101
+ }
102
+ else if ( strcmp (country, "BI") == 0 ) {
103
+ timezone = "Africa/Bujumbura";
104
+ }
105
+ else if ( strcmp (country, "BJ") == 0 ) {
106
+ timezone = "Africa/Porto-Novo";
107
+ }
108
+ else if ( strcmp (country, "BL") == 0 ) {
109
+ timezone = "America/St_Barthelemy";
110
+ }
111
+ else if ( strcmp (country, "BM") == 0 ) {
112
+ timezone = "Atlantic/Bermuda";
113
+ }
114
+ else if ( strcmp (country, "BN") == 0 ) {
115
+ timezone = "Asia/Brunei";
116
+ }
117
+ else if ( strcmp (country, "BO") == 0 ) {
118
+ timezone = "America/La_Paz";
119
+ }
120
+ else if ( strcmp (country, "BR") == 0 ) {
121
+ timezone = "Brazil/Acre";
122
+ }
123
+ else if ( strcmp (country, "BS") == 0 ) {
124
+ timezone = "America/Nassau";
125
+ }
126
+ else if ( strcmp (country, "BT") == 0 ) {
127
+ timezone = "Asia/Thimphu";
128
+ }
129
+ else if ( strcmp (country, "BW") == 0 ) {
130
+ timezone = "Africa/Gaborone";
131
+ }
132
+ else if ( strcmp (country, "BY") == 0 ) {
133
+ timezone = "Europe/Minsk";
134
+ }
135
+ else if ( strcmp (country, "BZ") == 0 ) {
136
+ timezone = "America/Belize";
137
+ }
138
+ else if ( strcmp (country, "CA") == 0 ) {
139
+ if ( strcmp (region, "AB") == 0 ) {
140
+ timezone = "America/Edmonton";
141
+ }
142
+ else if ( strcmp (region, "BC") == 0 ) {
143
+ timezone = "America/Vancouver";
144
+ }
145
+ else if ( strcmp (region, "MB") == 0 ) {
146
+ timezone = "America/Winnipeg";
147
+ }
148
+ else if ( strcmp (region, "NB") == 0 ) {
149
+ timezone = "America/Halifax";
150
+ }
151
+ else if ( strcmp (region, "NL") == 0 ) {
152
+ timezone = "America/St_Johns";
153
+ }
154
+ else if ( strcmp (region, "NS") == 0 ) {
155
+ timezone = "America/Halifax";
156
+ }
157
+ else if ( strcmp (region, "NT") == 0 ) {
158
+ timezone = "America/Yellowknife";
159
+ }
160
+ else if ( strcmp (region, "NU") == 0 ) {
161
+ timezone = "America/Rankin_Inlet";
162
+ }
163
+ else if ( strcmp (region, "ON") == 0 ) {
164
+ timezone = "America/Rainy_River";
165
+ }
166
+ else if ( strcmp (region, "PE") == 0 ) {
167
+ timezone = "America/Halifax";
168
+ }
169
+ else if ( strcmp (region, "QC") == 0 ) {
170
+ timezone = "America/Montreal";
171
+ }
172
+ else if ( strcmp (region, "SK") == 0 ) {
173
+ timezone = "America/Regina";
174
+ }
175
+ else if ( strcmp (region, "YT") == 0 ) {
176
+ timezone = "America/Whitehorse";
177
+ }
178
+ }
179
+ else if ( strcmp (country, "CC") == 0 ) {
180
+ timezone = "Indian/Cocos";
181
+ }
182
+ else if ( strcmp (country, "CF") == 0 ) {
183
+ timezone = "Africa/Bangui";
184
+ }
185
+ else if ( strcmp (country, "CG") == 0 ) {
186
+ timezone = "Africa/Brazzaville";
187
+ }
188
+ else if ( strcmp (country, "CH") == 0 ) {
189
+ timezone = "Europe/Zurich";
190
+ }
191
+ else if ( strcmp (country, "CI") == 0 ) {
192
+ timezone = "Africa/Abidjan";
193
+ }
194
+ else if ( strcmp (country, "CK") == 0 ) {
195
+ timezone = "Pacific/Rarotonga";
196
+ }
197
+ else if ( strcmp (country, "CL") == 0 ) {
198
+ timezone = "Chile/Continental";
199
+ }
200
+ else if ( strcmp (country, "CM") == 0 ) {
201
+ timezone = "Africa/Lagos";
202
+ }
203
+ else if ( strcmp (country, "CN") == 0 ) {
204
+ timezone = "Asia/Chongqing";
205
+ }
206
+ else if ( strcmp (country, "CO") == 0 ) {
207
+ timezone = "America/Bogota";
208
+ }
209
+ else if ( strcmp (country, "CR") == 0 ) {
210
+ timezone = "America/Costa_Rica";
211
+ }
212
+ else if ( strcmp (country, "CU") == 0 ) {
213
+ timezone = "America/Havana";
214
+ }
215
+ else if ( strcmp (country, "CV") == 0 ) {
216
+ timezone = "Atlantic/Cape_Verde";
217
+ }
218
+ else if ( strcmp (country, "CX") == 0 ) {
219
+ timezone = "Indian/Christmas";
220
+ }
221
+ else if ( strcmp (country, "CY") == 0 ) {
222
+ timezone = "Asia/Nicosia";
223
+ }
224
+ else if ( strcmp (country, "CZ") == 0 ) {
225
+ timezone = "Europe/Prague";
226
+ }
227
+ else if ( strcmp (country, "DE") == 0 ) {
228
+ timezone = "Europe/Berlin";
229
+ }
230
+ else if ( strcmp (country, "DJ") == 0 ) {
231
+ timezone = "Africa/Djibouti";
232
+ }
233
+ else if ( strcmp (country, "DK") == 0 ) {
234
+ timezone = "Europe/Copenhagen";
235
+ }
236
+ else if ( strcmp (country, "DM") == 0 ) {
237
+ timezone = "America/Dominica";
238
+ }
239
+ else if ( strcmp (country, "DO") == 0 ) {
240
+ timezone = "America/Santo_Domingo";
241
+ }
242
+ else if ( strcmp (country, "DZ") == 0 ) {
243
+ timezone = "Africa/Algiers";
244
+ }
245
+ else if ( strcmp (country, "EC") == 0 ) {
246
+ timezone = "America/Guayaquil";
247
+ }
248
+ else if ( strcmp (country, "EE") == 0 ) {
249
+ timezone = "Europe/Tallinn";
250
+ }
251
+ else if ( strcmp (country, "EG") == 0 ) {
252
+ timezone = "Africa/Cairo";
253
+ }
254
+ else if ( strcmp (country, "EH") == 0 ) {
255
+ timezone = "Africa/El_Aaiun";
256
+ }
257
+ else if ( strcmp (country, "ER") == 0 ) {
258
+ timezone = "Africa/Asmera";
259
+ }
260
+ else if ( strcmp (country, "ES") == 0 ) {
261
+ timezone = "Europe/Madrid";
262
+ }
263
+ else if ( strcmp (country, "ET") == 0 ) {
264
+ timezone = "Africa/Addis_Ababa";
265
+ }
266
+ else if ( strcmp (country, "FI") == 0 ) {
267
+ timezone = "Europe/Helsinki";
268
+ }
269
+ else if ( strcmp (country, "FJ") == 0 ) {
270
+ timezone = "Pacific/Fiji";
271
+ }
272
+ else if ( strcmp (country, "FK") == 0 ) {
273
+ timezone = "Atlantic/Stanley";
274
+ }
275
+ else if ( strcmp (country, "FO") == 0 ) {
276
+ timezone = "Atlantic/Faeroe";
277
+ }
278
+ else if ( strcmp (country, "FR") == 0 ) {
279
+ timezone = "Europe/Paris";
280
+ }
281
+ else if ( strcmp (country, "FX") == 0 ) {
282
+ timezone = "Europe/Paris";
283
+ }
284
+ else if ( strcmp (country, "GA") == 0 ) {
285
+ timezone = "Africa/Libreville";
286
+ }
287
+ else if ( strcmp (country, "GB") == 0 ) {
288
+ timezone = "Europe/London";
289
+ }
290
+ else if ( strcmp (country, "GD") == 0 ) {
291
+ timezone = "America/Grenada";
292
+ }
293
+ else if ( strcmp (country, "GE") == 0 ) {
294
+ timezone = "Asia/Tbilisi";
295
+ }
296
+ else if ( strcmp (country, "GF") == 0 ) {
297
+ timezone = "America/Cayenne";
298
+ }
299
+ else if ( strcmp (country, "GG") == 0 ) {
300
+ timezone = "Europe/Guernsey";
301
+ }
302
+ else if ( strcmp (country, "GH") == 0 ) {
303
+ timezone = "Africa/Accra";
304
+ }
305
+ else if ( strcmp (country, "GI") == 0 ) {
306
+ timezone = "Europe/Gibraltar";
307
+ }
308
+ else if ( strcmp (country, "GL") == 0 ) {
309
+ timezone = "America/Godthab";
310
+ }
311
+ else if ( strcmp (country, "GM") == 0 ) {
312
+ timezone = "Africa/Banjul";
313
+ }
314
+ else if ( strcmp (country, "GN") == 0 ) {
315
+ timezone = "Africa/Conakry";
316
+ }
317
+ else if ( strcmp (country, "GP") == 0 ) {
318
+ timezone = "America/Guadeloupe";
319
+ }
320
+ else if ( strcmp (country, "GQ") == 0 ) {
321
+ timezone = "Africa/Malabo";
322
+ }
323
+ else if ( strcmp (country, "GR") == 0 ) {
324
+ timezone = "Europe/Athens";
325
+ }
326
+ else if ( strcmp (country, "GS") == 0 ) {
327
+ timezone = "Atlantic/South_Georgia";
328
+ }
329
+ else if ( strcmp (country, "GT") == 0 ) {
330
+ timezone = "America/Guatemala";
331
+ }
332
+ else if ( strcmp (country, "GU") == 0 ) {
333
+ timezone = "Pacific/Guam";
334
+ }
335
+ else if ( strcmp (country, "GW") == 0 ) {
336
+ timezone = "Africa/Bissau";
337
+ }
338
+ else if ( strcmp (country, "GY") == 0 ) {
339
+ timezone = "America/Guyana";
340
+ }
341
+ else if ( strcmp (country, "HK") == 0 ) {
342
+ timezone = "Asia/Hong_Kong";
343
+ }
344
+ else if ( strcmp (country, "HN") == 0 ) {
345
+ timezone = "America/Tegucigalpa";
346
+ }
347
+ else if ( strcmp (country, "HR") == 0 ) {
348
+ timezone = "Europe/Zagreb";
349
+ }
350
+ else if ( strcmp (country, "HT") == 0 ) {
351
+ timezone = "America/Port-au-Prince";
352
+ }
353
+ else if ( strcmp (country, "HU") == 0 ) {
354
+ timezone = "Europe/Budapest";
355
+ }
356
+ else if ( strcmp (country, "ID") == 0 ) {
357
+ timezone = "Asia/Jakarta";
358
+ }
359
+ else if ( strcmp (country, "IE") == 0 ) {
360
+ timezone = "Europe/Dublin";
361
+ }
362
+ else if ( strcmp (country, "IL") == 0 ) {
363
+ timezone = "Asia/Jerusalem";
364
+ }
365
+ else if ( strcmp (country, "IM") == 0 ) {
366
+ timezone = "Europe/Isle_of_Man";
367
+ }
368
+ else if ( strcmp (country, "IN") == 0 ) {
369
+ timezone = "Asia/Calcutta";
370
+ }
371
+ else if ( strcmp (country, "IO") == 0 ) {
372
+ timezone = "Indian/Chagos";
373
+ }
374
+ else if ( strcmp (country, "IQ") == 0 ) {
375
+ timezone = "Asia/Baghdad";
376
+ }
377
+ else if ( strcmp (country, "IR") == 0 ) {
378
+ timezone = "Asia/Tehran";
379
+ }
380
+ else if ( strcmp (country, "IS") == 0 ) {
381
+ timezone = "Atlantic/Reykjavik";
382
+ }
383
+ else if ( strcmp (country, "IT") == 0 ) {
384
+ timezone = "Europe/Rome";
385
+ }
386
+ else if ( strcmp (country, "JE") == 0 ) {
387
+ timezone = "Europe/Jersey";
388
+ }
389
+ else if ( strcmp (country, "JM") == 0 ) {
390
+ timezone = "America/Jamaica";
391
+ }
392
+ else if ( strcmp (country, "JO") == 0 ) {
393
+ timezone = "Asia/Amman";
394
+ }
395
+ else if ( strcmp (country, "JP") == 0 ) {
396
+ timezone = "Asia/Tokyo";
397
+ }
398
+ else if ( strcmp (country, "KE") == 0 ) {
399
+ timezone = "Africa/Nairobi";
400
+ }
401
+ else if ( strcmp (country, "KG") == 0 ) {
402
+ timezone = "Asia/Bishkek";
403
+ }
404
+ else if ( strcmp (country, "KH") == 0 ) {
405
+ timezone = "Asia/Phnom_Penh";
406
+ }
407
+ else if ( strcmp (country, "KI") == 0 ) {
408
+ timezone = "Pacific/Tarawa";
409
+ }
410
+ else if ( strcmp (country, "KM") == 0 ) {
411
+ timezone = "Indian/Comoro";
412
+ }
413
+ else if ( strcmp (country, "KN") == 0 ) {
414
+ timezone = "America/St_Kitts";
415
+ }
416
+ else if ( strcmp (country, "KP") == 0 ) {
417
+ timezone = "Asia/Pyongyang";
418
+ }
419
+ else if ( strcmp (country, "KR") == 0 ) {
420
+ timezone = "Asia/Seoul";
421
+ }
422
+ else if ( strcmp (country, "KW") == 0 ) {
423
+ timezone = "Asia/Kuwait";
424
+ }
425
+ else if ( strcmp (country, "KY") == 0 ) {
426
+ timezone = "America/Cayman";
427
+ }
428
+ else if ( strcmp (country, "KZ") == 0 ) {
429
+ timezone = "Asia/Almaty";
430
+ }
431
+ else if ( strcmp (country, "LA") == 0 ) {
432
+ timezone = "Asia/Vientiane";
433
+ }
434
+ else if ( strcmp (country, "LB") == 0 ) {
435
+ timezone = "Asia/Beirut";
436
+ }
437
+ else if ( strcmp (country, "LC") == 0 ) {
438
+ timezone = "America/St_Lucia";
439
+ }
440
+ else if ( strcmp (country, "LI") == 0 ) {
441
+ timezone = "Europe/Vaduz";
442
+ }
443
+ else if ( strcmp (country, "LK") == 0 ) {
444
+ timezone = "Asia/Colombo";
445
+ }
446
+ else if ( strcmp (country, "LR") == 0 ) {
447
+ timezone = "Africa/Monrovia";
448
+ }
449
+ else if ( strcmp (country, "LS") == 0 ) {
450
+ timezone = "Africa/Maseru";
451
+ }
452
+ else if ( strcmp (country, "LT") == 0 ) {
453
+ timezone = "Europe/Vilnius";
454
+ }
455
+ else if ( strcmp (country, "LU") == 0 ) {
456
+ timezone = "Europe/Luxembourg";
457
+ }
458
+ else if ( strcmp (country, "LV") == 0 ) {
459
+ timezone = "Europe/Riga";
460
+ }
461
+ else if ( strcmp (country, "LY") == 0 ) {
462
+ timezone = "Africa/Tripoli";
463
+ }
464
+ else if ( strcmp (country, "MA") == 0 ) {
465
+ timezone = "Africa/Casablanca";
466
+ }
467
+ else if ( strcmp (country, "MC") == 0 ) {
468
+ timezone = "Europe/Monaco";
469
+ }
470
+ else if ( strcmp (country, "MD") == 0 ) {
471
+ timezone = "Europe/Chisinau";
472
+ }
473
+ else if ( strcmp (country, "ME") == 0 ) {
474
+ timezone = "Europe/Podgorica";
475
+ }
476
+ else if ( strcmp (country, "MF") == 0 ) {
477
+ timezone = "America/Marigot";
478
+ }
479
+ else if ( strcmp (country, "MG") == 0 ) {
480
+ timezone = "Indian/Antananarivo";
481
+ }
482
+ else if ( strcmp (country, "MK") == 0 ) {
483
+ timezone = "Europe/Skopje";
484
+ }
485
+ else if ( strcmp (country, "ML") == 0 ) {
486
+ timezone = "Africa/Bamako";
487
+ }
488
+ else if ( strcmp (country, "MM") == 0 ) {
489
+ timezone = "Asia/Rangoon";
490
+ }
491
+ else if ( strcmp (country, "MN") == 0 ) {
492
+ timezone = "Asia/Choibalsan";
493
+ }
494
+ else if ( strcmp (country, "MO") == 0 ) {
495
+ timezone = "Asia/Macao";
496
+ }
497
+ else if ( strcmp (country, "MP") == 0 ) {
498
+ timezone = "Pacific/Saipan";
499
+ }
500
+ else if ( strcmp (country, "MQ") == 0 ) {
501
+ timezone = "America/Martinique";
502
+ }
503
+ else if ( strcmp (country, "MR") == 0 ) {
504
+ timezone = "Africa/Nouakchott";
505
+ }
506
+ else if ( strcmp (country, "MS") == 0 ) {
507
+ timezone = "America/Montserrat";
508
+ }
509
+ else if ( strcmp (country, "MT") == 0 ) {
510
+ timezone = "Europe/Malta";
511
+ }
512
+ else if ( strcmp (country, "MU") == 0 ) {
513
+ timezone = "Indian/Mauritius";
514
+ }
515
+ else if ( strcmp (country, "MV") == 0 ) {
516
+ timezone = "Indian/Maldives";
517
+ }
518
+ else if ( strcmp (country, "MW") == 0 ) {
519
+ timezone = "Africa/Blantyre";
520
+ }
521
+ else if ( strcmp (country, "MX") == 0 ) {
522
+ timezone = "America/Chihuahua";
523
+ }
524
+ else if ( strcmp (country, "MZ") == 0 ) {
525
+ timezone = "Africa/Maputo";
526
+ }
527
+ else if ( strcmp (country, "NA") == 0 ) {
528
+ timezone = "Africa/Windhoek";
529
+ }
530
+ else if ( strcmp (country, "NC") == 0 ) {
531
+ timezone = "Pacific/Noumea";
532
+ }
533
+ else if ( strcmp (country, "NE") == 0 ) {
534
+ timezone = "Africa/Niamey";
535
+ }
536
+ else if ( strcmp (country, "NF") == 0 ) {
537
+ timezone = "Pacific/Norfolk";
538
+ }
539
+ else if ( strcmp (country, "NG") == 0 ) {
540
+ timezone = "Africa/Lagos";
541
+ }
542
+ else if ( strcmp (country, "NI") == 0 ) {
543
+ timezone = "America/Managua";
544
+ }
545
+ else if ( strcmp (country, "NL") == 0 ) {
546
+ timezone = "Europe/Amsterdam";
547
+ }
548
+ else if ( strcmp (country, "NO") == 0 ) {
549
+ timezone = "Europe/Oslo";
550
+ }
551
+ else if ( strcmp (country, "NP") == 0 ) {
552
+ timezone = "Asia/Katmandu";
553
+ }
554
+ else if ( strcmp (country, "NR") == 0 ) {
555
+ timezone = "Pacific/Nauru";
556
+ }
557
+ else if ( strcmp (country, "NU") == 0 ) {
558
+ timezone = "Pacific/Niue";
559
+ }
560
+ else if ( strcmp (country, "NZ") == 0 ) {
561
+ timezone = "Pacific/Auckland";
562
+ }
563
+ else if ( strcmp (country, "OM") == 0 ) {
564
+ timezone = "Asia/Muscat";
565
+ }
566
+ else if ( strcmp (country, "PA") == 0 ) {
567
+ timezone = "America/Panama";
568
+ }
569
+ else if ( strcmp (country, "PE") == 0 ) {
570
+ timezone = "America/Lima";
571
+ }
572
+ else if ( strcmp (country, "PG") == 0 ) {
573
+ timezone = "Pacific/Port_Moresby";
574
+ }
575
+ else if ( strcmp (country, "PH") == 0 ) {
576
+ timezone = "Asia/Manila";
577
+ }
578
+ else if ( strcmp (country, "PK") == 0 ) {
579
+ timezone = "Asia/Karachi";
580
+ }
581
+ else if ( strcmp (country, "PL") == 0 ) {
582
+ timezone = "Europe/Warsaw";
583
+ }
584
+ else if ( strcmp (country, "PM") == 0 ) {
585
+ timezone = "America/Miquelon";
586
+ }
587
+ else if ( strcmp (country, "PN") == 0 ) {
588
+ timezone = "Pacific/Pitcairn";
589
+ }
590
+ else if ( strcmp (country, "PR") == 0 ) {
591
+ timezone = "America/Puerto_Rico";
592
+ }
593
+ else if ( strcmp (country, "PS") == 0 ) {
594
+ timezone = "Asia/Gaza";
595
+ }
596
+ else if ( strcmp (country, "PT") == 0 ) {
597
+ timezone = "Atlantic/Azores";
598
+ }
599
+ else if ( strcmp (country, "PW") == 0 ) {
600
+ timezone = "Pacific/Palau";
601
+ }
602
+ else if ( strcmp (country, "PY") == 0 ) {
603
+ timezone = "America/Asuncion";
604
+ }
605
+ else if ( strcmp (country, "QA") == 0 ) {
606
+ timezone = "Asia/Qatar";
607
+ }
608
+ else if ( strcmp (country, "RE") == 0 ) {
609
+ timezone = "Indian/Reunion";
610
+ }
611
+ else if ( strcmp (country, "RO") == 0 ) {
612
+ timezone = "Europe/Bucharest";
613
+ }
614
+ else if ( strcmp (country, "RS") == 0 ) {
615
+ timezone = "Europe/Belgrade";
616
+ }
617
+ else if ( strcmp (country, "RU") == 0 ) {
618
+ timezone = "Europe/Moscow";
619
+ }
620
+ else if ( strcmp (country, "RW") == 0 ) {
621
+ timezone = "Africa/Kigali";
622
+ }
623
+ else if ( strcmp (country, "SA") == 0 ) {
624
+ timezone = "Asia/Riyadh";
625
+ }
626
+ else if ( strcmp (country, "SB") == 0 ) {
627
+ timezone = "Pacific/Guadalcanal";
628
+ }
629
+ else if ( strcmp (country, "SC") == 0 ) {
630
+ timezone = "Indian/Mahe";
631
+ }
632
+ else if ( strcmp (country, "SD") == 0 ) {
633
+ timezone = "Africa/Khartoum";
634
+ }
635
+ else if ( strcmp (country, "SE") == 0 ) {
636
+ timezone = "Europe/Stockholm";
637
+ }
638
+ else if ( strcmp (country, "SG") == 0 ) {
639
+ timezone = "Asia/Singapore";
640
+ }
641
+ else if ( strcmp (country, "SH") == 0 ) {
642
+ timezone = "Atlantic/St_Helena";
643
+ }
644
+ else if ( strcmp (country, "SI") == 0 ) {
645
+ timezone = "Europe/Ljubljana";
646
+ }
647
+ else if ( strcmp (country, "SJ") == 0 ) {
648
+ timezone = "Arctic/Longyearbyen";
649
+ }
650
+ else if ( strcmp (country, "SK") == 0 ) {
651
+ timezone = "Europe/Bratislava";
652
+ }
653
+ else if ( strcmp (country, "SL") == 0 ) {
654
+ timezone = "Africa/Freetown";
655
+ }
656
+ else if ( strcmp (country, "SM") == 0 ) {
657
+ timezone = "Europe/San_Marino";
658
+ }
659
+ else if ( strcmp (country, "SN") == 0 ) {
660
+ timezone = "Africa/Dakar";
661
+ }
662
+ else if ( strcmp (country, "SO") == 0 ) {
663
+ timezone = "Africa/Mogadishu";
664
+ }
665
+ else if ( strcmp (country, "SR") == 0 ) {
666
+ timezone = "America/Paramaribo";
667
+ }
668
+ else if ( strcmp (country, "ST") == 0 ) {
669
+ timezone = "Africa/Sao_Tome";
670
+ }
671
+ else if ( strcmp (country, "SV") == 0 ) {
672
+ timezone = "America/El_Salvador";
673
+ }
674
+ else if ( strcmp (country, "SY") == 0 ) {
675
+ timezone = "Asia/Damascus";
676
+ }
677
+ else if ( strcmp (country, "SZ") == 0 ) {
678
+ timezone = "Africa/Mbabane";
679
+ }
680
+ else if ( strcmp (country, "TC") == 0 ) {
681
+ timezone = "America/Grand_Turk";
682
+ }
683
+ else if ( strcmp (country, "TD") == 0 ) {
684
+ timezone = "Africa/Ndjamena";
685
+ }
686
+ else if ( strcmp (country, "TF") == 0 ) {
687
+ timezone = "Indian/Kerguelen";
688
+ }
689
+ else if ( strcmp (country, "TG") == 0 ) {
690
+ timezone = "Africa/Lome";
691
+ }
692
+ else if ( strcmp (country, "TH") == 0 ) {
693
+ timezone = "Asia/Bangkok";
694
+ }
695
+ else if ( strcmp (country, "TJ") == 0 ) {
696
+ timezone = "Asia/Dushanbe";
697
+ }
698
+ else if ( strcmp (country, "TK") == 0 ) {
699
+ timezone = "Pacific/Fakaofo";
700
+ }
701
+ else if ( strcmp (country, "TL") == 0 ) {
702
+ timezone = "Asia/Jakarta";
703
+ }
704
+ else if ( strcmp (country, "TM") == 0 ) {
705
+ timezone = "Asia/Ashgabat";
706
+ }
707
+ else if ( strcmp (country, "TN") == 0 ) {
708
+ timezone = "Africa/Tunis";
709
+ }
710
+ else if ( strcmp (country, "TO") == 0 ) {
711
+ timezone = "Pacific/Tongatapu";
712
+ }
713
+ else if ( strcmp (country, "TR") == 0 ) {
714
+ timezone = "Asia/Istanbul";
715
+ }
716
+ else if ( strcmp (country, "TT") == 0 ) {
717
+ timezone = "America/Port_of_Spain";
718
+ }
719
+ else if ( strcmp (country, "TV") == 0 ) {
720
+ timezone = "Pacific/Funafuti";
721
+ }
722
+ else if ( strcmp (country, "TW") == 0 ) {
723
+ timezone = "Asia/Taipei";
724
+ }
725
+ else if ( strcmp (country, "TZ") == 0 ) {
726
+ timezone = "Africa/Dar_es_Salaam";
727
+ }
728
+ else if ( strcmp (country, "UA") == 0 ) {
729
+ timezone = "Europe/Kiev";
730
+ }
731
+ else if ( strcmp (country, "UG") == 0 ) {
732
+ timezone = "Africa/Kampala";
733
+ }
734
+ else if ( strcmp (country, "US") == 0 ) {
735
+ if ( strcmp (region, "AK") == 0 ) {
736
+ timezone = "America/Anchorage";
737
+ }
738
+ else if ( strcmp (region, "AL") == 0 ) {
739
+ timezone = "America/Chicago";
740
+ }
741
+ else if ( strcmp (region, "AR") == 0 ) {
742
+ timezone = "America/Chicago";
743
+ }
744
+ else if ( strcmp (region, "AZ") == 0 ) {
745
+ timezone = "America/Phoenix";
746
+ }
747
+ else if ( strcmp (region, "CA") == 0 ) {
748
+ timezone = "America/Los_Angeles";
749
+ }
750
+ else if ( strcmp (region, "CO") == 0 ) {
751
+ timezone = "America/Denver";
752
+ }
753
+ else if ( strcmp (region, "CT") == 0 ) {
754
+ timezone = "America/New_York";
755
+ }
756
+ else if ( strcmp (region, "DC") == 0 ) {
757
+ timezone = "America/New_York";
758
+ }
759
+ else if ( strcmp (region, "DE") == 0 ) {
760
+ timezone = "America/New_York";
761
+ }
762
+ else if ( strcmp (region, "FL") == 0 ) {
763
+ timezone = "America/New_York";
764
+ }
765
+ else if ( strcmp (region, "GA") == 0 ) {
766
+ timezone = "America/New_York";
767
+ }
768
+ else if ( strcmp (region, "HI") == 0 ) {
769
+ timezone = "Pacific/Honolulu";
770
+ }
771
+ else if ( strcmp (region, "IA") == 0 ) {
772
+ timezone = "America/Chicago";
773
+ }
774
+ else if ( strcmp (region, "ID") == 0 ) {
775
+ timezone = "America/Denver";
776
+ }
777
+ else if ( strcmp (region, "IL") == 0 ) {
778
+ timezone = "America/Chicago";
779
+ }
780
+ else if ( strcmp (region, "IN") == 0 ) {
781
+ timezone = "America/Indianapolis";
782
+ }
783
+ else if ( strcmp (region, "KS") == 0 ) {
784
+ timezone = "America/Chicago";
785
+ }
786
+ else if ( strcmp (region, "KY") == 0 ) {
787
+ timezone = "America/New_York";
788
+ }
789
+ else if ( strcmp (region, "LA") == 0 ) {
790
+ timezone = "America/Chicago";
791
+ }
792
+ else if ( strcmp (region, "MA") == 0 ) {
793
+ timezone = "America/New_York";
794
+ }
795
+ else if ( strcmp (region, "MD") == 0 ) {
796
+ timezone = "America/New_York";
797
+ }
798
+ else if ( strcmp (region, "ME") == 0 ) {
799
+ timezone = "America/New_York";
800
+ }
801
+ else if ( strcmp (region, "MI") == 0 ) {
802
+ timezone = "America/New_York";
803
+ }
804
+ else if ( strcmp (region, "MN") == 0 ) {
805
+ timezone = "America/Chicago";
806
+ }
807
+ else if ( strcmp (region, "MO") == 0 ) {
808
+ timezone = "America/Chicago";
809
+ }
810
+ else if ( strcmp (region, "MS") == 0 ) {
811
+ timezone = "America/Chicago";
812
+ }
813
+ else if ( strcmp (region, "MT") == 0 ) {
814
+ timezone = "America/Denver";
815
+ }
816
+ else if ( strcmp (region, "NC") == 0 ) {
817
+ timezone = "America/New_York";
818
+ }
819
+ else if ( strcmp (region, "ND") == 0 ) {
820
+ timezone = "America/Chicago";
821
+ }
822
+ else if ( strcmp (region, "NE") == 0 ) {
823
+ timezone = "America/Chicago";
824
+ }
825
+ else if ( strcmp (region, "NH") == 0 ) {
826
+ timezone = "America/New_York";
827
+ }
828
+ else if ( strcmp (region, "NJ") == 0 ) {
829
+ timezone = "America/New_York";
830
+ }
831
+ else if ( strcmp (region, "NM") == 0 ) {
832
+ timezone = "America/Denver";
833
+ }
834
+ else if ( strcmp (region, "NV") == 0 ) {
835
+ timezone = "America/Los_Angeles";
836
+ }
837
+ else if ( strcmp (region, "NY") == 0 ) {
838
+ timezone = "America/New_York";
839
+ }
840
+ else if ( strcmp (region, "OH") == 0 ) {
841
+ timezone = "America/New_York";
842
+ }
843
+ else if ( strcmp (region, "OK") == 0 ) {
844
+ timezone = "America/Chicago";
845
+ }
846
+ else if ( strcmp (region, "OR") == 0 ) {
847
+ timezone = "America/Los_Angeles";
848
+ }
849
+ else if ( strcmp (region, "PA") == 0 ) {
850
+ timezone = "America/New_York";
851
+ }
852
+ else if ( strcmp (region, "RI") == 0 ) {
853
+ timezone = "America/New_York";
854
+ }
855
+ else if ( strcmp (region, "SC") == 0 ) {
856
+ timezone = "America/New_York";
857
+ }
858
+ else if ( strcmp (region, "SD") == 0 ) {
859
+ timezone = "America/Chicago";
860
+ }
861
+ else if ( strcmp (region, "TN") == 0 ) {
862
+ timezone = "America/Chicago";
863
+ }
864
+ else if ( strcmp (region, "TX") == 0 ) {
865
+ timezone = "America/Chicago";
866
+ }
867
+ else if ( strcmp (region, "UT") == 0 ) {
868
+ timezone = "America/Denver";
869
+ }
870
+ else if ( strcmp (region, "VA") == 0 ) {
871
+ timezone = "America/New_York";
872
+ }
873
+ else if ( strcmp (region, "VT") == 0 ) {
874
+ timezone = "America/New_York";
875
+ }
876
+ else if ( strcmp (region, "WA") == 0 ) {
877
+ timezone = "America/Los_Angeles";
878
+ }
879
+ else if ( strcmp (region, "WI") == 0 ) {
880
+ timezone = "America/Chicago";
881
+ }
882
+ else if ( strcmp (region, "WV") == 0 ) {
883
+ timezone = "America/New_York";
884
+ }
885
+ else if ( strcmp (region, "WY") == 0 ) {
886
+ timezone = "America/Denver";
887
+ }
888
+ }
889
+ else if ( strcmp (country, "UY") == 0 ) {
890
+ timezone = "America/Montevideo";
891
+ }
892
+ else if ( strcmp (country, "UZ") == 0 ) {
893
+ timezone = "Asia/Tashkent";
894
+ }
895
+ else if ( strcmp (country, "VA") == 0 ) {
896
+ timezone = "Europe/Vatican";
897
+ }
898
+ else if ( strcmp (country, "VC") == 0 ) {
899
+ timezone = "America/St_Vincent";
900
+ }
901
+ else if ( strcmp (country, "VE") == 0 ) {
902
+ timezone = "America/Caracas";
903
+ }
904
+ else if ( strcmp (country, "VG") == 0 ) {
905
+ timezone = "America/Tortola";
906
+ }
907
+ else if ( strcmp (country, "VI") == 0 ) {
908
+ timezone = "America/St_Thomas";
909
+ }
910
+ else if ( strcmp (country, "VN") == 0 ) {
911
+ timezone = "Asia/Phnom_Penh";
912
+ }
913
+ else if ( strcmp (country, "VU") == 0 ) {
914
+ timezone = "Pacific/Efate";
915
+ }
916
+ else if ( strcmp (country, "WF") == 0 ) {
917
+ timezone = "Pacific/Wallis";
918
+ }
919
+ else if ( strcmp (country, "WS") == 0 ) {
920
+ timezone = "Pacific/Samoa";
921
+ }
922
+ else if ( strcmp (country, "YE") == 0 ) {
923
+ timezone = "Asia/Aden";
924
+ }
925
+ else if ( strcmp (country, "YT") == 0 ) {
926
+ timezone = "Indian/Mayotte";
927
+ }
928
+ else if ( strcmp (country, "YU") == 0 ) {
929
+ timezone = "Europe/Belgrade";
930
+ }
931
+ else if ( strcmp (country, "ZA") == 0 ) {
932
+ timezone = "Africa/Johannesburg";
933
+ }
934
+ else if ( strcmp (country, "ZM") == 0 ) {
935
+ timezone = "Africa/Lusaka";
936
+ }
937
+ else if ( strcmp (country, "ZW") == 0 ) {
938
+ timezone = "Africa/Harare";
939
+ }
940
+ return timezone;
941
+ }