@@ -8,29 +8,171 @@ type Coordinates struct {
88 Lon float64
99}
1010
11+ // LOCATION_COORDINATES contains coordinates for all countries to enable
12+ // coordinate-based fallback for GeoDNS when no exact agent match exists
1113var LOCATION_COORDINATES = map [string ]Coordinates {
12- "us" : {Lat : 37.0902 , Lon : - 95.7129 },
13- "de" : {Lat : 51.1657 , Lon : 10.4515 },
14- "cz" : {Lat : 49.8175 , Lon : 15.4730 },
15- "ru" : {Lat : 61.5240 , Lon : 105.3188 },
16- "kz" : {Lat : 48.0196 , Lon : 66.9237 },
17- "ua" : {Lat : 48.3794 , Lon : 31.1656 },
18- "by" : {Lat : 53.7098 , Lon : 27.9534 },
19- "pl" : {Lat : 51.9194 , Lon : 19.1451 },
20- "gb" : {Lat : 55.3781 , Lon : - 3.4360 },
21- "fr" : {Lat : 46.2276 , Lon : 2.2137 },
22- "it" : {Lat : 41.8719 , Lon : 12.5674 },
23- "es" : {Lat : 40.4637 , Lon : - 3.7492 },
24- "nl" : {Lat : 52.1326 , Lon : 5.2913 },
25- "jp" : {Lat : 36.2048 , Lon : 138.2529 },
26- "hk" : {Lat : 22.3193 , Lon : 114.1694 },
27- "sg" : {Lat : 1.3521 , Lon : 103.8198 },
28- "au" : {Lat : - 25.2744 , Lon : 133.7751 },
29- "br" : {Lat : - 14.2350 , Lon : - 51.9253 },
30- "in" : {Lat : 20.5937 , Lon : 78.9629 },
31- "tr" : {Lat : 38.9637 , Lon : 35.2433 },
32- "az" : {Lat : 40.1431 , Lon : 47.5769 }, // Azerbaijan
14+ // North America
15+ "us" : {Lat : 37.0902 , Lon : - 95.7129 }, // United States
16+ "ca" : {Lat : 56.1304 , Lon : - 106.3468 }, // Canada
17+ "mx" : {Lat : 23.6345 , Lon : - 102.5528 }, // Mexico
18+
19+ // Europe
20+ "de" : {Lat : 51.1657 , Lon : 10.4515 }, // Germany
21+ "fr" : {Lat : 46.2276 , Lon : 2.2137 }, // France
22+ "gb" : {Lat : 55.3781 , Lon : - 3.4360 }, // United Kingdom
23+ "it" : {Lat : 41.8719 , Lon : 12.5674 }, // Italy
24+ "es" : {Lat : 40.4637 , Lon : - 3.7492 }, // Spain
25+ "nl" : {Lat : 52.1326 , Lon : 5.2913 }, // Netherlands
3326 "be" : {Lat : 50.8503 , Lon : 4.3517 }, // Belgium
27+ "ch" : {Lat : 46.8182 , Lon : 8.2275 }, // Switzerland
28+ "at" : {Lat : 47.5162 , Lon : 14.5501 }, // Austria
29+ "pl" : {Lat : 51.9194 , Lon : 19.1451 }, // Poland
30+ "cz" : {Lat : 49.8175 , Lon : 15.4730 }, // Czech Republic
31+ "se" : {Lat : 60.1282 , Lon : 18.6435 }, // Sweden
32+ "no" : {Lat : 60.4720 , Lon : 8.4689 }, // Norway
33+ "dk" : {Lat : 56.2639 , Lon : 9.5018 }, // Denmark
34+ "fi" : {Lat : 61.9241 , Lon : 25.7482 }, // Finland
35+ "ie" : {Lat : 53.1424 , Lon : - 7.6921 }, // Ireland
36+ "pt" : {Lat : 39.3999 , Lon : - 8.2245 }, // Portugal
37+ "gr" : {Lat : 39.0742 , Lon : 21.8243 }, // Greece
38+ "hu" : {Lat : 47.1625 , Lon : 19.5033 }, // Hungary
39+ "ro" : {Lat : 45.9432 , Lon : 24.9668 }, // Romania
40+ "bg" : {Lat : 42.7339 , Lon : 25.4858 }, // Bulgaria
41+ "sk" : {Lat : 48.6690 , Lon : 19.6990 }, // Slovakia
42+ "hr" : {Lat : 45.1000 , Lon : 15.2000 }, // Croatia
43+ "si" : {Lat : 46.1512 , Lon : 14.9955 }, // Slovenia
44+ "lt" : {Lat : 55.1694 , Lon : 23.8813 }, // Lithuania
45+ "lv" : {Lat : 56.8796 , Lon : 24.6032 }, // Latvia
46+ "ee" : {Lat : 58.5953 , Lon : 25.0136 }, // Estonia
47+ "lu" : {Lat : 49.8153 , Lon : 6.1296 }, // Luxembourg
48+ "mt" : {Lat : 35.9375 , Lon : 14.3754 }, // Malta
49+ "cy" : {Lat : 35.1264 , Lon : 33.4299 }, // Cyprus
50+
51+ // Eastern Europe / CIS
52+ "ru" : {Lat : 61.5240 , Lon : 105.3188 }, // Russia
53+ "ua" : {Lat : 48.3794 , Lon : 31.1656 }, // Ukraine
54+ "by" : {Lat : 53.7098 , Lon : 27.9534 }, // Belarus
55+ "kz" : {Lat : 48.0196 , Lon : 66.9237 }, // Kazakhstan
56+ "md" : {Lat : 47.4116 , Lon : 28.3699 }, // Moldova
57+ "az" : {Lat : 40.1431 , Lon : 47.5769 }, // Azerbaijan
58+ "am" : {Lat : 40.0691 , Lon : 45.0382 }, // Armenia
59+ "ge" : {Lat : 42.3154 , Lon : 43.3569 }, // Georgia
60+ "uz" : {Lat : 41.3775 , Lon : 64.5853 }, // Uzbekistan
61+ "kg" : {Lat : 41.2044 , Lon : 74.7661 }, // Kyrgyzstan
62+ "tj" : {Lat : 38.8610 , Lon : 71.2761 }, // Tajikistan
63+ "tm" : {Lat : 38.9697 , Lon : 59.5563 }, // Turkmenistan
64+
65+ // Asia
66+ "jp" : {Lat : 36.2048 , Lon : 138.2529 }, // Japan
67+ "hk" : {Lat : 22.3193 , Lon : 114.1694 }, // Hong Kong
68+ "sg" : {Lat : 1.3521 , Lon : 103.8198 }, // Singapore
69+ "cn" : {Lat : 35.8617 , Lon : 104.1954 }, // China
70+ "kr" : {Lat : 35.9078 , Lon : 127.7669 }, // South Korea
71+ "tw" : {Lat : 23.6978 , Lon : 120.9605 }, // Taiwan
72+ "in" : {Lat : 20.5937 , Lon : 78.9629 }, // India
73+ "id" : {Lat : - 0.7893 , Lon : 113.9213 }, // Indonesia
74+ "th" : {Lat : 15.8700 , Lon : 100.9925 }, // Thailand
75+ "vn" : {Lat : 14.0583 , Lon : 108.2772 }, // Vietnam
76+ "my" : {Lat : 4.2105 , Lon : 101.9758 }, // Malaysia
77+ "ph" : {Lat : 12.8797 , Lon : 121.7740 }, // Philippines
78+ "pk" : {Lat : 30.3753 , Lon : 69.3451 }, // Pakistan
79+ "bd" : {Lat : 23.6850 , Lon : 90.3563 }, // Bangladesh
80+ "lk" : {Lat : 7.8731 , Lon : 80.7718 }, // Sri Lanka
81+ "np" : {Lat : 28.3949 , Lon : 84.1240 }, // Nepal
82+ "mm" : {Lat : 21.9162 , Lon : 95.9560 }, // Myanmar
83+ "kh" : {Lat : 12.5657 , Lon : 104.9910 }, // Cambodia
84+ "la" : {Lat : 19.8563 , Lon : 102.4955 }, // Laos
85+ "mn" : {Lat : 46.8625 , Lon : 103.8467 }, // Mongolia
86+
87+ // Middle East
88+ "tr" : {Lat : 38.9637 , Lon : 35.2433 }, // Turkey
89+ "ir" : {Lat : 32.4279 , Lon : 53.6880 }, // Iran
90+ "sa" : {Lat : 23.8859 , Lon : 45.0792 }, // Saudi Arabia
91+ "ae" : {Lat : 23.4241 , Lon : 53.8478 }, // UAE
92+ "il" : {Lat : 31.0461 , Lon : 34.8516 }, // Israel
93+ "jo" : {Lat : 30.5852 , Lon : 36.2384 }, // Jordan
94+ "lb" : {Lat : 33.8547 , Lon : 35.8623 }, // Lebanon
95+ "iq" : {Lat : 33.2232 , Lon : 43.6793 }, // Iraq
96+ "sy" : {Lat : 34.8021 , Lon : 38.9968 }, // Syria
97+ "om" : {Lat : 21.4735 , Lon : 55.9754 }, // Oman
98+ "qa" : {Lat : 25.3548 , Lon : 51.1839 }, // Qatar
99+ "bh" : {Lat : 25.9304 , Lon : 50.6378 }, // Bahrain
100+ "kw" : {Lat : 29.3117 , Lon : 47.4818 }, // Kuwait
101+
102+ // Oceania
103+ "au" : {Lat : - 25.2744 , Lon : 133.7751 }, // Australia
104+ "nz" : {Lat : - 40.9006 , Lon : 174.8860 }, // New Zealand
105+
106+ // South America
107+ "br" : {Lat : - 14.2350 , Lon : - 51.9253 }, // Brazil
108+ "ar" : {Lat : - 38.4161 , Lon : - 63.6167 }, // Argentina
109+ "cl" : {Lat : - 35.6751 , Lon : - 71.5430 }, // Chile
110+ "co" : {Lat : 4.5709 , Lon : - 74.2973 }, // Colombia
111+ "pe" : {Lat : - 9.1900 , Lon : - 75.0152 }, // Peru
112+ "ve" : {Lat : 6.4238 , Lon : - 66.5897 }, // Venezuela
113+ "ec" : {Lat : - 1.8312 , Lon : - 78.1834 }, // Ecuador
114+ "bo" : {Lat : - 16.2902 , Lon : - 63.5887 }, // Bolivia
115+ "py" : {Lat : - 23.4425 , Lon : - 58.4438 }, // Paraguay
116+ "uy" : {Lat : - 32.5228 , Lon : - 55.7658 }, // Uruguay
117+ "gy" : {Lat : 4.8604 , Lon : - 58.9302 }, // Guyana
118+ "sr" : {Lat : 3.9193 , Lon : - 56.0278 }, // Suriname
119+
120+ // Africa
121+ "za" : {Lat : - 30.5595 , Lon : 22.9375 }, // South Africa
122+ "eg" : {Lat : 26.0975 , Lon : 30.0444 }, // Egypt
123+ "ng" : {Lat : 9.0820 , Lon : 8.6753 }, // Nigeria
124+ "ke" : {Lat : - 0.0236 , Lon : 37.9062 }, // Kenya
125+ "et" : {Lat : 9.1450 , Lon : 40.4897 }, // Ethiopia
126+ "tz" : {Lat : - 6.3690 , Lon : 34.8888 }, // Tanzania
127+ "gh" : {Lat : 7.9465 , Lon : - 1.0232 }, // Ghana
128+ "mz" : {Lat : - 18.6657 , Lon : 35.5296 }, // Mozambique
129+ "mg" : {Lat : - 18.7669 , Lon : 46.8691 }, // Madagascar
130+ "cm" : {Lat : 7.3697 , Lon : 12.3547 }, // Cameroon
131+ "ci" : {Lat : 7.5400 , Lon : - 5.5471 }, // Ivory Coast
132+ "ne" : {Lat : 17.6078 , Lon : 8.0817 }, // Niger
133+ "sn" : {Lat : 14.4974 , Lon : - 14.4524 }, // Senegal
134+ "ml" : {Lat : 17.5707 , Lon : - 3.9962 }, // Mali
135+ "bf" : {Lat : 12.2383 , Lon : - 1.5616 }, // Burkina Faso
136+ "rw" : {Lat : - 1.9403 , Lon : 29.8739 }, // Rwanda
137+ "so" : {Lat : 5.1521 , Lon : 46.1996 }, // Somalia
138+ "ss" : {Lat : 6.8770 , Lon : 31.3070 }, // South Sudan
139+ "sd" : {Lat : 12.8628 , Lon : 30.2176 }, // Sudan
140+ "ug" : {Lat : 1.3733 , Lon : 32.2903 }, // Uganda
141+ "zm" : {Lat : - 13.1339 , Lon : 27.8493 }, // Zambia
142+ "zw" : {Lat : - 19.0154 , Lon : 29.1549 }, // Zimbabwe
143+ "bw" : {Lat : - 22.3285 , Lon : 24.6849 }, // Botswana
144+ "na" : {Lat : - 22.9576 , Lon : 18.4904 }, // Namibia
145+ "ao" : {Lat : - 11.2027 , Lon : 17.8739 }, // Angola
146+ "cd" : {Lat : - 4.0383 , Lon : 21.7587 }, // DR Congo
147+ "cg" : {Lat : - 0.2280 , Lon : 15.8277 }, // Congo
148+ "ga" : {Lat : - 0.8037 , Lon : 11.6094 }, // Gabon
149+ "gq" : {Lat : 1.6508 , Lon : 10.2679 }, // Equatorial Guinea
150+ "st" : {Lat : 0.1864 , Lon : 6.6131 }, // Sao Tome and Principe
151+ "bi" : {Lat : - 3.3731 , Lon : 29.9189 }, // Burundi
152+ "dj" : {Lat : 11.8251 , Lon : 42.5903 }, // Djibouti
153+ "er" : {Lat : 15.1794 , Lon : 39.7823 }, // Eritrea
154+ "ls" : {Lat : - 29.6100 , Lon : 28.2336 }, // Lesotho
155+ "sz" : {Lat : - 26.5225 , Lon : 31.4659 }, // Eswatini
156+ "mu" : {Lat : - 20.3484 , Lon : 57.5522 }, // Mauritius
157+ "km" : {Lat : - 11.8750 , Lon : 43.8722 }, // Comoros
158+ "sc" : {Lat : - 4.6796 , Lon : 55.4920 }, // Seychelles
159+ "cv" : {Lat : 16.5388 , Lon : - 23.0418 }, // Cape Verde
160+
161+ // Central America & Caribbean
162+ "gt" : {Lat : 15.7835 , Lon : - 90.2308 }, // Guatemala
163+ "hn" : {Lat : 15.2000 , Lon : - 86.2419 }, // Honduras
164+ "sv" : {Lat : 13.7942 , Lon : - 88.8965 }, // El Salvador
165+ "ni" : {Lat : 12.8654 , Lon : - 85.2072 }, // Nicaragua
166+ "cr" : {Lat : 9.7489 , Lon : - 83.7534 }, // Costa Rica
167+ "pa" : {Lat : 8.5380 , Lon : - 80.7821 }, // Panama
168+ "cu" : {Lat : 21.5218 , Lon : - 77.7812 }, // Cuba
169+ "jm" : {Lat : 18.1096 , Lon : - 77.2975 }, // Jamaica
170+ "ht" : {Lat : 18.9712 , Lon : - 72.2852 }, // Haiti
171+ "do" : {Lat : 18.7357 , Lon : - 70.1627 }, // Dominican Republic
172+ "tt" : {Lat : 10.6918 , Lon : - 61.2225 }, // Trinidad and Tobago
173+ "bb" : {Lat : 13.1939 , Lon : - 59.5432 }, // Barbados
174+ "bs" : {Lat : 25.0343 , Lon : - 77.3963 }, // Bahamas
175+ "bz" : {Lat : 17.1899 , Lon : - 88.4976 }, // Belize
34176}
35177
36178// isRoutingRestricted checks political routing restrictions
0 commit comments