mirror of
https://github.com/safing/portmaster
synced 2025-09-02 18:49:14 +00:00
264 lines
9.7 KiB
Go
264 lines
9.7 KiB
Go
package geoip
|
|
|
|
const defaultCountryBasedAccuracy = 200
|
|
|
|
// FillMissingInfo tries to fill missing location information based on the
|
|
// available existing information.
|
|
func (l *Location) FillMissingInfo() {
|
|
// Get coordinates from country.
|
|
if l.Coordinates.Latitude == 0 &&
|
|
l.Coordinates.Longitude == 0 &&
|
|
l.Country.ISOCode != "" {
|
|
if c, ok := countryCoordinates[l.Country.ISOCode]; ok {
|
|
l.Coordinates = c
|
|
l.Coordinates.AccuracyRadius = defaultCountryBasedAccuracy
|
|
}
|
|
}
|
|
}
|
|
|
|
var countryCoordinates = map[string]Coordinates{
|
|
"AD": {Latitude: 42, Longitude: 1},
|
|
"AE": {Latitude: 23, Longitude: 53},
|
|
"AF": {Latitude: 33, Longitude: 67},
|
|
"AG": {Latitude: 17, Longitude: -61},
|
|
"AI": {Latitude: 18, Longitude: -63},
|
|
"AL": {Latitude: 41, Longitude: 20},
|
|
"AM": {Latitude: 40, Longitude: 45},
|
|
"AN": {Latitude: 12, Longitude: -69},
|
|
"AO": {Latitude: -11, Longitude: 17},
|
|
"AQ": {Latitude: -75, Longitude: -0},
|
|
"AR": {Latitude: -38, Longitude: -63},
|
|
"AS": {Latitude: -14, Longitude: -170},
|
|
"AT": {Latitude: 47, Longitude: 14},
|
|
"AU": {Latitude: -25, Longitude: 133},
|
|
"AW": {Latitude: 12, Longitude: -69},
|
|
"AZ": {Latitude: 40, Longitude: 47},
|
|
"BA": {Latitude: 43, Longitude: 17},
|
|
"BB": {Latitude: 13, Longitude: -59},
|
|
"BD": {Latitude: 23, Longitude: 90},
|
|
"BE": {Latitude: 50, Longitude: 4},
|
|
"BF": {Latitude: 12, Longitude: -1},
|
|
"BG": {Latitude: 42, Longitude: 25},
|
|
"BH": {Latitude: 25, Longitude: 50},
|
|
"BI": {Latitude: -3, Longitude: 29},
|
|
"BJ": {Latitude: 9, Longitude: 2},
|
|
"BM": {Latitude: 32, Longitude: -64},
|
|
"BN": {Latitude: 4, Longitude: 114},
|
|
"BO": {Latitude: -16, Longitude: -63},
|
|
"BR": {Latitude: -14, Longitude: -51},
|
|
"BS": {Latitude: 25, Longitude: -77},
|
|
"BT": {Latitude: 27, Longitude: 90},
|
|
"BV": {Latitude: -54, Longitude: 3},
|
|
"BW": {Latitude: -22, Longitude: 24},
|
|
"BY": {Latitude: 53, Longitude: 27},
|
|
"BZ": {Latitude: 17, Longitude: -88},
|
|
"CA": {Latitude: 56, Longitude: -106},
|
|
"CC": {Latitude: -12, Longitude: 96},
|
|
"CD": {Latitude: -4, Longitude: 21},
|
|
"CF": {Latitude: 6, Longitude: 20},
|
|
"CG": {Latitude: -0, Longitude: 15},
|
|
"CH": {Latitude: 46, Longitude: 8},
|
|
"CI": {Latitude: 7, Longitude: -5},
|
|
"CK": {Latitude: -21, Longitude: -159},
|
|
"CL": {Latitude: -35, Longitude: -71},
|
|
"CM": {Latitude: 7, Longitude: 12},
|
|
"CN": {Latitude: 35, Longitude: 104},
|
|
"CO": {Latitude: 4, Longitude: -74},
|
|
"CR": {Latitude: 9, Longitude: -83},
|
|
"CU": {Latitude: 21, Longitude: -77},
|
|
"CV": {Latitude: 16, Longitude: -24},
|
|
"CX": {Latitude: -10, Longitude: 105},
|
|
"CY": {Latitude: 35, Longitude: 33},
|
|
"CZ": {Latitude: 49, Longitude: 15},
|
|
"DE": {Latitude: 51, Longitude: 10},
|
|
"DJ": {Latitude: 11, Longitude: 42},
|
|
"DK": {Latitude: 56, Longitude: 9},
|
|
"DM": {Latitude: 15, Longitude: -61},
|
|
"DO": {Latitude: 18, Longitude: -70},
|
|
"DZ": {Latitude: 28, Longitude: 1},
|
|
"EC": {Latitude: -1, Longitude: -78},
|
|
"EE": {Latitude: 58, Longitude: 25},
|
|
"EG": {Latitude: 26, Longitude: 30},
|
|
"EH": {Latitude: 24, Longitude: -12},
|
|
"ER": {Latitude: 15, Longitude: 39},
|
|
"ES": {Latitude: 40, Longitude: -3},
|
|
"ET": {Latitude: 9, Longitude: 40},
|
|
"FI": {Latitude: 61, Longitude: 25},
|
|
"FJ": {Latitude: -16, Longitude: 179},
|
|
"FK": {Latitude: -51, Longitude: -59},
|
|
"FM": {Latitude: 7, Longitude: 150},
|
|
"FO": {Latitude: 61, Longitude: -6},
|
|
"FR": {Latitude: 46, Longitude: 2},
|
|
"GA": {Latitude: -0, Longitude: 11},
|
|
"GB": {Latitude: 55, Longitude: -3},
|
|
"GD": {Latitude: 12, Longitude: -61},
|
|
"GE": {Latitude: 42, Longitude: 43},
|
|
"GF": {Latitude: 3, Longitude: -53},
|
|
"GG": {Latitude: 49, Longitude: -2},
|
|
"GH": {Latitude: 7, Longitude: -1},
|
|
"GI": {Latitude: 36, Longitude: -5},
|
|
"GL": {Latitude: 71, Longitude: -42},
|
|
"GM": {Latitude: 13, Longitude: -15},
|
|
"GN": {Latitude: 9, Longitude: -9},
|
|
"GP": {Latitude: 16, Longitude: -62},
|
|
"GQ": {Latitude: 1, Longitude: 10},
|
|
"GR": {Latitude: 39, Longitude: 21},
|
|
"GS": {Latitude: -54, Longitude: -36},
|
|
"GT": {Latitude: 15, Longitude: -90},
|
|
"GU": {Latitude: 13, Longitude: 144},
|
|
"GW": {Latitude: 11, Longitude: -15},
|
|
"GY": {Latitude: 4, Longitude: -58},
|
|
"GZ": {Latitude: 31, Longitude: 34},
|
|
"HK": {Latitude: 22, Longitude: 114},
|
|
"HM": {Latitude: -53, Longitude: 73},
|
|
"HN": {Latitude: 15, Longitude: -86},
|
|
"HR": {Latitude: 45, Longitude: 15},
|
|
"HT": {Latitude: 18, Longitude: -72},
|
|
"HU": {Latitude: 47, Longitude: 19},
|
|
"ID": {Latitude: -0, Longitude: 113},
|
|
"IE": {Latitude: 53, Longitude: -8},
|
|
"IL": {Latitude: 31, Longitude: 34},
|
|
"IM": {Latitude: 54, Longitude: -4},
|
|
"IN": {Latitude: 20, Longitude: 78},
|
|
"IO": {Latitude: -6, Longitude: 71},
|
|
"IQ": {Latitude: 33, Longitude: 43},
|
|
"IR": {Latitude: 32, Longitude: 53},
|
|
"IS": {Latitude: 64, Longitude: -19},
|
|
"IT": {Latitude: 41, Longitude: 12},
|
|
"JE": {Latitude: 49, Longitude: -2},
|
|
"JM": {Latitude: 18, Longitude: -77},
|
|
"JO": {Latitude: 30, Longitude: 36},
|
|
"JP": {Latitude: 36, Longitude: 138},
|
|
"KE": {Latitude: -0, Longitude: 37},
|
|
"KG": {Latitude: 41, Longitude: 74},
|
|
"KH": {Latitude: 12, Longitude: 104},
|
|
"KI": {Latitude: -3, Longitude: -168},
|
|
"KM": {Latitude: -11, Longitude: 43},
|
|
"KN": {Latitude: 17, Longitude: -62},
|
|
"KP": {Latitude: 40, Longitude: 127},
|
|
"KR": {Latitude: 35, Longitude: 127},
|
|
"KW": {Latitude: 29, Longitude: 47},
|
|
"KY": {Latitude: 19, Longitude: -80},
|
|
"KZ": {Latitude: 48, Longitude: 66},
|
|
"LA": {Latitude: 19, Longitude: 102},
|
|
"LB": {Latitude: 33, Longitude: 35},
|
|
"LC": {Latitude: 13, Longitude: -60},
|
|
"LI": {Latitude: 47, Longitude: 9},
|
|
"LK": {Latitude: 7, Longitude: 80},
|
|
"LR": {Latitude: 6, Longitude: -9},
|
|
"LS": {Latitude: -29, Longitude: 28},
|
|
"LT": {Latitude: 55, Longitude: 23},
|
|
"LU": {Latitude: 49, Longitude: 6},
|
|
"LV": {Latitude: 56, Longitude: 24},
|
|
"LY": {Latitude: 26, Longitude: 17},
|
|
"MA": {Latitude: 31, Longitude: -7},
|
|
"MC": {Latitude: 43, Longitude: 7},
|
|
"MD": {Latitude: 47, Longitude: 28},
|
|
"ME": {Latitude: 42, Longitude: 19},
|
|
"MG": {Latitude: -18, Longitude: 46},
|
|
"MH": {Latitude: 7, Longitude: 171},
|
|
"MK": {Latitude: 41, Longitude: 21},
|
|
"ML": {Latitude: 17, Longitude: -3},
|
|
"MM": {Latitude: 21, Longitude: 95},
|
|
"MN": {Latitude: 46, Longitude: 103},
|
|
"MO": {Latitude: 22, Longitude: 113},
|
|
"MP": {Latitude: 17, Longitude: 145},
|
|
"MQ": {Latitude: 14, Longitude: -61},
|
|
"MR": {Latitude: 21, Longitude: -10},
|
|
"MS": {Latitude: 16, Longitude: -62},
|
|
"MT": {Latitude: 35, Longitude: 14},
|
|
"MU": {Latitude: -20, Longitude: 57},
|
|
"MV": {Latitude: 3, Longitude: 73},
|
|
"MW": {Latitude: -13, Longitude: 34},
|
|
"MX": {Latitude: 23, Longitude: -102},
|
|
"MY": {Latitude: 4, Longitude: 101},
|
|
"MZ": {Latitude: -18, Longitude: 35},
|
|
"NA": {Latitude: -22, Longitude: 18},
|
|
"NC": {Latitude: -20, Longitude: 165},
|
|
"NE": {Latitude: 17, Longitude: 8},
|
|
"NF": {Latitude: -29, Longitude: 167},
|
|
"NG": {Latitude: 9, Longitude: 8},
|
|
"NI": {Latitude: 12, Longitude: -85},
|
|
"NL": {Latitude: 52, Longitude: 5},
|
|
"NO": {Latitude: 60, Longitude: 8},
|
|
"NP": {Latitude: 28, Longitude: 84},
|
|
"NR": {Latitude: -0, Longitude: 166},
|
|
"NU": {Latitude: -19, Longitude: -169},
|
|
"NZ": {Latitude: -40, Longitude: 174},
|
|
"OM": {Latitude: 21, Longitude: 55},
|
|
"PA": {Latitude: 8, Longitude: -80},
|
|
"PE": {Latitude: -9, Longitude: -75},
|
|
"PF": {Latitude: -17, Longitude: -149},
|
|
"PG": {Latitude: -6, Longitude: 143},
|
|
"PH": {Latitude: 12, Longitude: 121},
|
|
"PK": {Latitude: 30, Longitude: 69},
|
|
"PL": {Latitude: 51, Longitude: 19},
|
|
"PM": {Latitude: 46, Longitude: -56},
|
|
"PN": {Latitude: -24, Longitude: -127},
|
|
"PR": {Latitude: 18, Longitude: -66},
|
|
"PS": {Latitude: 31, Longitude: 35},
|
|
"PT": {Latitude: 39, Longitude: -8},
|
|
"PW": {Latitude: 7, Longitude: 134},
|
|
"PY": {Latitude: -23, Longitude: -58},
|
|
"QA": {Latitude: 25, Longitude: 51},
|
|
"RE": {Latitude: -21, Longitude: 55},
|
|
"RO": {Latitude: 45, Longitude: 24},
|
|
"RS": {Latitude: 44, Longitude: 21},
|
|
"RU": {Latitude: 61, Longitude: 105},
|
|
"RW": {Latitude: -1, Longitude: 29},
|
|
"SA": {Latitude: 23, Longitude: 45},
|
|
"SB": {Latitude: -9, Longitude: 160},
|
|
"SC": {Latitude: -4, Longitude: 55},
|
|
"SD": {Latitude: 12, Longitude: 30},
|
|
"SE": {Latitude: 60, Longitude: 18},
|
|
"SG": {Latitude: 1, Longitude: 103},
|
|
"SH": {Latitude: -24, Longitude: -10},
|
|
"SI": {Latitude: 46, Longitude: 14},
|
|
"SJ": {Latitude: 77, Longitude: 23},
|
|
"SK": {Latitude: 48, Longitude: 19},
|
|
"SL": {Latitude: 8, Longitude: -11},
|
|
"SM": {Latitude: 43, Longitude: 12},
|
|
"SN": {Latitude: 14, Longitude: -14},
|
|
"SO": {Latitude: 5, Longitude: 46},
|
|
"SR": {Latitude: 3, Longitude: -56},
|
|
"ST": {Latitude: 0, Longitude: 6},
|
|
"SV": {Latitude: 13, Longitude: -88},
|
|
"SY": {Latitude: 34, Longitude: 38},
|
|
"SZ": {Latitude: -26, Longitude: 31},
|
|
"TC": {Latitude: 21, Longitude: -71},
|
|
"TD": {Latitude: 15, Longitude: 18},
|
|
"TF": {Latitude: -49, Longitude: 69},
|
|
"TG": {Latitude: 8, Longitude: 0},
|
|
"TH": {Latitude: 15, Longitude: 100},
|
|
"TJ": {Latitude: 38, Longitude: 71},
|
|
"TK": {Latitude: -8, Longitude: -171},
|
|
"TL": {Latitude: -8, Longitude: 125},
|
|
"TM": {Latitude: 38, Longitude: 59},
|
|
"TN": {Latitude: 33, Longitude: 9},
|
|
"TO": {Latitude: -21, Longitude: -175},
|
|
"TR": {Latitude: 38, Longitude: 35},
|
|
"TT": {Latitude: 10, Longitude: -61},
|
|
"TV": {Latitude: -7, Longitude: 177},
|
|
"TW": {Latitude: 23, Longitude: 120},
|
|
"TZ": {Latitude: -6, Longitude: 34},
|
|
"UA": {Latitude: 48, Longitude: 31},
|
|
"UG": {Latitude: 1, Longitude: 32},
|
|
"US": {Latitude: 37, Longitude: -95},
|
|
"UY": {Latitude: -32, Longitude: -55},
|
|
"UZ": {Latitude: 41, Longitude: 64},
|
|
"VA": {Latitude: 41, Longitude: 12},
|
|
"VC": {Latitude: 12, Longitude: -61},
|
|
"VE": {Latitude: 6, Longitude: -66},
|
|
"VG": {Latitude: 18, Longitude: -64},
|
|
"VI": {Latitude: 18, Longitude: -64},
|
|
"VN": {Latitude: 14, Longitude: 108},
|
|
"VU": {Latitude: -15, Longitude: 166},
|
|
"WF": {Latitude: -13, Longitude: -177},
|
|
"WS": {Latitude: -13, Longitude: -172},
|
|
"XK": {Latitude: 42, Longitude: 20},
|
|
"YE": {Latitude: 15, Longitude: 48},
|
|
"YT": {Latitude: -12, Longitude: 45},
|
|
"ZA": {Latitude: -30, Longitude: 22},
|
|
"ZM": {Latitude: -13, Longitude: 27},
|
|
"ZW": {Latitude: -19, Longitude: 29},
|
|
}
|