diff --git a/internal/configuration/privado.go b/internal/configuration/privado.go index 83ee4f52..ddbe99c1 100644 --- a/internal/configuration/privado.go +++ b/internal/configuration/privado.go @@ -5,6 +5,18 @@ import ( ) func (settings *Provider) privadoLines() (lines []string) { + if len(settings.ServerSelection.Countries) > 0 { + lines = append(lines, lastIndent+"Countries: "+commaJoin(settings.ServerSelection.Countries)) + } + + if len(settings.ServerSelection.Regions) > 0 { + lines = append(lines, lastIndent+"Regions: "+commaJoin(settings.ServerSelection.Regions)) + } + + if len(settings.ServerSelection.Cities) > 0 { + lines = append(lines, lastIndent+"Cities: "+commaJoin(settings.ServerSelection.Cities)) + } + if len(settings.ServerSelection.Hostnames) > 0 { lines = append(lines, lastIndent+"Hostnames: "+commaJoin(settings.ServerSelection.Hostnames)) } @@ -25,6 +37,21 @@ func (settings *Provider) readPrivado(r reader) (err error) { return err } + settings.ServerSelection.Countries, err = r.env.CSVInside("COUNTRY", constants.PrivadoCountryChoices()) + if err != nil { + return err + } + + settings.ServerSelection.Regions, err = r.env.CSVInside("REGION", constants.PrivadoRegionChoices()) + if err != nil { + return err + } + + settings.ServerSelection.Cities, err = r.env.CSVInside("CITY", constants.PrivadoCityChoices()) + if err != nil { + return err + } + settings.ServerSelection.Hostnames, err = r.env.CSVInside("SERVER_HOSTNAME", constants.PrivadoHostnameChoices()) if err != nil { return err diff --git a/internal/constants/privado.go b/internal/constants/privado.go index 552a54d8..65c0999f 100644 --- a/internal/constants/privado.go +++ b/internal/constants/privado.go @@ -11,6 +11,33 @@ const ( PrivadoCertificate = "MIIFKDCCAxCgAwIBAgIJAMtrmqZxIV/OMA0GCSqGSIb3DQEBDQUAMBIxEDAOBgNVBAMMB1ByaXZhZG8wHhcNMjAwMTA4MjEyODQ1WhcNMzUwMTA5MjEyODQ1WjASMRAwDgYDVQQDDAdQcml2YWRvMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxPwOgiwNJzZTnKIXwAB0TSu/Lu2qt2U2I8obtQjwhi/7OrfmbmYykSdro70al2XPhnwAGGdCxW6LDnp0UN/IOhD11mgBPo14f5CLkBQjSJ6VN5miPbvK746LsNZl9H8rQGvDuPo4CG9BfPZMiDRGlsMxij/jztzgT1gmuxQ7WHfFRcNzBas1dHa9hV/d3TU6/t47x4SE/ljdcCtJiu7Zn6ODKQoys3mB7Luz2ngqUJWvkqsg+E4+3eJ0M8Hlbn5TPaRJBID7DAdYo6Vs6xGCYr981ThFcmoIQ10js10yANrrfGAzd03b3TnLAgko0uQMHjliMZL6L8sWOPHxyxJI0us88SFh4UgcFyRHKHPKux7w24SxAlZUYoUcTHp9VjG5XvDKYxzgV2RdM4ulBGbQRQ3y3/CyddsyQYMvA55Ets0LfPaBvDIcct70iXijGsdvlX1du3ArGpG7Vaje/RU4nbbGT6HYRdt5YyZfof288ukMOSj20nVcmS+c/4tqsxSerRb1aq5LOi1IemSkTMeC5gCbexk+L1vl7NT/58sxjGmu5bXwnvev/lIItfi2AlITrfUSEv19iDMKkeshwn/+sFJBMWYyluP+yJ56yR+MWoXvLlSWphLDTqq19yx3BZn0P1tgbXoR0g8PTdJFcz8z3RIb7myVLYulV1oGG/3rka0CAwEAAaOBgDB+MB0GA1UdDgQWBBTFtJkZCVDuDAD6k5bJzefjJdO3DTBCBgNVHSMEOzA5gBTFtJkZCVDuDAD6k5bJzefjJdO3DaEWpBQwEjEQMA4GA1UEAwwHUHJpdmFkb4IJAMtrmqZxIV/OMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBDQUAA4ICAQB7MUSXMeBb9wlSv4sUaT1JHEwE26nlBw+TKmezfuPU5pBlY0LYr6qQZY95DHqsRJ7ByUzGUrGo17dNGXlcuNc6TAaQQEDRPo6y+LVh2TWMk15TUMI+MkqryJtCret7xGvDigKYMJgBy58HN3RAVr1B7cL9youwzLgc2Y/NcFKvnQJKeiIYAJ7g0CcnJiQvgZTS7xdwkEBXfsngmUCIG320DLPEL+Ze0HiUrxwWljMRya6i40AeH3Zu2i532xX1wV5+cjA4RJWIKg6ri/Q54iFGtZrA9/nc6y9uoQHkmz8cGyVUmJxFzMrrIICVqUtVRxLhkTMe4UzwRWTBeGgtW4tS0yq1QonAKfOyjgRw/CeY55D2UGvnAFZdTadtYXS4Alu2P9zdwoEk3fzHiVmDjqfJVr5wz9383aABUFrPI3nz6ed/Z6LZflKh1k+DUDEp8NxU4klUULWsSOKoa5zGX51G8cdHxwQLImXvtGuN5eSR8jCTgxFZhdps/xes4KkyfIz9FMYG748M+uOTgKITf4zdJ9BAyiQaOufVQZ8WjhWzWk9YHec9VqPkzpWNGkVjiRI5ewuXwZzZ164tMv2hikBXSuUCnFz37/ZNwGlDi0oBdDszCk2GxccdFHHaCSmpjU5MrdJ+5IhtTKGeTx+US2hTIVHQFIO99DmacxSYvLNcSQ==" ) +func PrivadoCountryChoices() (choices []string) { + servers := PrivadoServers() + choices = make([]string, len(servers)) + for i := range servers { + choices[i] = servers[i].Country + } + return makeUnique(choices) +} + +func PrivadoRegionChoices() (choices []string) { + servers := PrivadoServers() + choices = make([]string, len(servers)) + for i := range servers { + choices[i] = servers[i].Region + } + return makeUnique(choices) +} + +func PrivadoCityChoices() (choices []string) { + servers := PrivadoServers() + choices = make([]string, len(servers)) + for i := range servers { + choices[i] = servers[i].City + } + return makeUnique(choices) +} + func PrivadoHostnameChoices() (choices []string) { servers := PrivadoServers() choices = make([]string, len(servers)) @@ -20,262 +47,355 @@ func PrivadoHostnameChoices() (choices []string) { return makeUnique(choices) } +//nolint:lll func PrivadoServers() []models.PrivadoServer { return []models.PrivadoServer{ - {Hostname: "akl-005.vpn.privado.io", IP: net.IP{103, 76, 164, 105}}, - {Hostname: "ams-010.vpn.privado.io", IP: net.IP{91, 148, 228, 20}}, - {Hostname: "ams-012.vpn.privado.io", IP: net.IP{91, 148, 228, 40}}, - {Hostname: "ams-013.vpn.privado.io", IP: net.IP{91, 148, 228, 50}}, - {Hostname: "ams-014.vpn.privado.io", IP: net.IP{91, 148, 228, 60}}, - {Hostname: "ams-015.vpn.privado.io", IP: net.IP{91, 148, 228, 70}}, - {Hostname: "ams-016.vpn.privado.io", IP: net.IP{91, 148, 228, 80}}, - {Hostname: "arn-001.vpn.privado.io", IP: net.IP{86, 106, 103, 67}}, - {Hostname: "arn-002.vpn.privado.io", IP: net.IP{86, 106, 103, 74}}, - {Hostname: "arn-003.vpn.privado.io", IP: net.IP{86, 106, 103, 81}}, - {Hostname: "arn-004.vpn.privado.io", IP: net.IP{86, 106, 103, 88}}, - {Hostname: "ath-001.vpn.privado.io", IP: net.IP{188, 123, 126, 61}}, - {Hostname: "ath-002.vpn.privado.io", IP: net.IP{188, 123, 126, 64}}, - {Hostname: "ath-004.vpn.privado.io", IP: net.IP{188, 123, 126, 72}}, - {Hostname: "beg-002.vpn.privado.io", IP: net.IP{89, 38, 224, 25}}, - {Hostname: "ber-001.vpn.privado.io", IP: net.IP{89, 36, 76, 35}}, - {Hostname: "ber-002.vpn.privado.io", IP: net.IP{89, 36, 76, 41}}, - {Hostname: "bkk-001.vpn.privado.io", IP: net.IP{119, 59, 111, 3}}, - {Hostname: "bkk-002.vpn.privado.io", IP: net.IP{119, 59, 111, 11}}, - {Hostname: "bom-001.vpn.privado.io", IP: net.IP{103, 26, 204, 61}}, - {Hostname: "bru-001.vpn.privado.io", IP: net.IP{217, 138, 211, 163}}, - {Hostname: "bru-003.vpn.privado.io", IP: net.IP{217, 138, 211, 177}}, - {Hostname: "bru-004.vpn.privado.io", IP: net.IP{217, 138, 211, 184}}, - {Hostname: "bts-001.vpn.privado.io", IP: net.IP{37, 120, 221, 227}}, - {Hostname: "bts-002.vpn.privado.io", IP: net.IP{37, 120, 221, 233}}, - {Hostname: "bud-002.vpn.privado.io", IP: net.IP{185, 128, 26, 200}}, - {Hostname: "cdg-001.vpn.privado.io", IP: net.IP{89, 40, 183, 99}}, - {Hostname: "cdg-002.vpn.privado.io", IP: net.IP{89, 40, 183, 104}}, - {Hostname: "cdg-003.vpn.privado.io", IP: net.IP{89, 40, 183, 109}}, - {Hostname: "cph-001.vpn.privado.io", IP: net.IP{2, 58, 46, 35}}, - {Hostname: "cph-002.vpn.privado.io", IP: net.IP{2, 58, 46, 42}}, - {Hostname: "dca-003.vpn.privado.io", IP: net.IP{85, 12, 61, 30}}, - {Hostname: "dca-005.vpn.privado.io", IP: net.IP{85, 12, 61, 50}}, - {Hostname: "dca-006.vpn.privado.io", IP: net.IP{85, 12, 61, 60}}, - {Hostname: "dca-007.vpn.privado.io", IP: net.IP{85, 12, 61, 70}}, - {Hostname: "dca-009.vpn.privado.io", IP: net.IP{85, 12, 61, 90}}, - {Hostname: "dca-011.vpn.privado.io", IP: net.IP{85, 12, 61, 110}}, - {Hostname: "dca-012.vpn.privado.io", IP: net.IP{85, 12, 61, 120}}, - {Hostname: "dca-013.vpn.privado.io", IP: net.IP{185, 247, 68, 3}}, - {Hostname: "dca-014.vpn.privado.io", IP: net.IP{185, 247, 68, 14}}, - {Hostname: "dfw-001.vpn.privado.io", IP: net.IP{23, 105, 32, 243}}, - {Hostname: "dfw-002.vpn.privado.io", IP: net.IP{23, 105, 32, 244}}, - {Hostname: "dfw-003.vpn.privado.io", IP: net.IP{172, 241, 25, 157}}, - {Hostname: "dfw-006.vpn.privado.io", IP: net.IP{172, 241, 25, 163}}, - {Hostname: "dfw-007.vpn.privado.io", IP: net.IP{172, 241, 25, 165}}, - {Hostname: "dfw-008.vpn.privado.io", IP: net.IP{172, 241, 25, 167}}, - {Hostname: "dfw-009.vpn.privado.io", IP: net.IP{172, 241, 25, 169}}, - {Hostname: "dfw-010.vpn.privado.io", IP: net.IP{172, 241, 25, 171}}, - {Hostname: "dfw-011.vpn.privado.io", IP: net.IP{172, 241, 25, 173}}, - {Hostname: "dfw-012.vpn.privado.io", IP: net.IP{172, 241, 25, 175}}, - {Hostname: "dfw-013.vpn.privado.io", IP: net.IP{172, 241, 25, 177}}, - {Hostname: "dfw-014.vpn.privado.io", IP: net.IP{172, 241, 25, 179}}, - {Hostname: "dfw-016.vpn.privado.io", IP: net.IP{172, 241, 25, 183}}, - {Hostname: "dfw-017.vpn.privado.io", IP: net.IP{172, 241, 25, 185}}, - {Hostname: "dfw-018.vpn.privado.io", IP: net.IP{172, 241, 30, 65}}, - {Hostname: "dfw-020.vpn.privado.io", IP: net.IP{172, 241, 30, 69}}, - {Hostname: "dfw-022.vpn.privado.io", IP: net.IP{172, 241, 30, 73}}, - {Hostname: "dfw-025.vpn.privado.io", IP: net.IP{172, 241, 30, 79}}, - {Hostname: "dfw-026.vpn.privado.io", IP: net.IP{172, 241, 30, 81}}, - {Hostname: "dfw-029.vpn.privado.io", IP: net.IP{172, 241, 30, 87}}, - {Hostname: "dfw-030.vpn.privado.io", IP: net.IP{172, 241, 30, 89}}, - {Hostname: "dfw-031.vpn.privado.io", IP: net.IP{172, 241, 30, 91}}, - {Hostname: "dfw-032.vpn.privado.io", IP: net.IP{172, 241, 30, 93}}, - {Hostname: "dub-001.vpn.privado.io", IP: net.IP{84, 247, 48, 227}}, - {Hostname: "dub-003.vpn.privado.io", IP: net.IP{84, 247, 48, 241}}, - {Hostname: "dub-004.vpn.privado.io", IP: net.IP{84, 247, 48, 248}}, - {Hostname: "eze-001.vpn.privado.io", IP: net.IP{168, 205, 93, 211}}, - {Hostname: "fra-001.vpn.privado.io", IP: net.IP{91, 148, 232, 10}}, - {Hostname: "fra-003.vpn.privado.io", IP: net.IP{91, 148, 232, 30}}, - {Hostname: "fra-004.vpn.privado.io", IP: net.IP{91, 148, 232, 40}}, - {Hostname: "fra-005.vpn.privado.io", IP: net.IP{91, 148, 233, 7}}, - {Hostname: "fra-006.vpn.privado.io", IP: net.IP{91, 148, 233, 8}}, - {Hostname: "fra-007.vpn.privado.io", IP: net.IP{91, 148, 233, 9}}, - {Hostname: "fra-008.vpn.privado.io", IP: net.IP{91, 148, 233, 10}}, - {Hostname: "hel-001.vpn.privado.io", IP: net.IP{194, 34, 134, 219}}, - {Hostname: "hel-002.vpn.privado.io", IP: net.IP{194, 34, 134, 227}}, - {Hostname: "hkg-003.vpn.privado.io", IP: net.IP{209, 58, 185, 108}}, - {Hostname: "hkg-004.vpn.privado.io", IP: net.IP{209, 58, 185, 120}}, - {Hostname: "icn-001.vpn.privado.io", IP: net.IP{169, 56, 73, 146}}, - {Hostname: "iev-001.vpn.privado.io", IP: net.IP{176, 103, 52, 40}}, - {Hostname: "ist-001.vpn.privado.io", IP: net.IP{185, 84, 183, 3}}, - {Hostname: "jfk-003.vpn.privado.io", IP: net.IP{217, 138, 208, 113}}, - {Hostname: "jfk-006.vpn.privado.io", IP: net.IP{37, 120, 244, 10}}, - {Hostname: "jfk-007.vpn.privado.io", IP: net.IP{37, 120, 244, 17}}, - {Hostname: "jfk-009.vpn.privado.io", IP: net.IP{23, 19, 225, 65}}, - {Hostname: "jfk-012.vpn.privado.io", IP: net.IP{23, 19, 225, 71}}, - {Hostname: "jfk-014.vpn.privado.io", IP: net.IP{23, 19, 225, 75}}, - {Hostname: "jfk-015.vpn.privado.io", IP: net.IP{23, 19, 225, 77}}, - {Hostname: "jfk-019.vpn.privado.io", IP: net.IP{23, 19, 225, 85}}, - {Hostname: "jfk-020.vpn.privado.io", IP: net.IP{23, 19, 225, 87}}, - {Hostname: "jfk-023.vpn.privado.io", IP: net.IP{23, 19, 225, 93}}, - {Hostname: "jfk-025.vpn.privado.io", IP: net.IP{23, 19, 225, 97}}, - {Hostname: "jfk-026.vpn.privado.io", IP: net.IP{23, 19, 225, 99}}, - {Hostname: "jfk-027.vpn.privado.io", IP: net.IP{23, 19, 225, 101}}, - {Hostname: "jfk-028.vpn.privado.io", IP: net.IP{23, 19, 225, 103}}, - {Hostname: "jfk-029.vpn.privado.io", IP: net.IP{23, 19, 225, 105}}, - {Hostname: "jfk-030.vpn.privado.io", IP: net.IP{23, 19, 225, 107}}, - {Hostname: "jfk-034.vpn.privado.io", IP: net.IP{23, 19, 225, 115}}, - {Hostname: "jfk-035.vpn.privado.io", IP: net.IP{23, 19, 225, 117}}, - {Hostname: "jfk-036.vpn.privado.io", IP: net.IP{23, 19, 225, 119}}, - {Hostname: "jnb-001.vpn.privado.io", IP: net.IP{172, 107, 93, 131}}, - {Hostname: "jnb-002.vpn.privado.io", IP: net.IP{172, 107, 93, 137}}, - {Hostname: "jrs-001.vpn.privado.io", IP: net.IP{31, 168, 251, 131}}, - {Hostname: "jrs-002.vpn.privado.io", IP: net.IP{31, 168, 251, 137}}, - {Hostname: "kul-002.vpn.privado.io", IP: net.IP{103, 246, 112, 231}}, - {Hostname: "kul-003.vpn.privado.io", IP: net.IP{103, 246, 112, 233}}, - {Hostname: "kul-005.vpn.privado.io", IP: net.IP{103, 246, 112, 237}}, - {Hostname: "kul-006.vpn.privado.io", IP: net.IP{103, 246, 112, 239}}, - {Hostname: "kul-007.vpn.privado.io", IP: net.IP{103, 246, 112, 241}}, - {Hostname: "kul-008.vpn.privado.io", IP: net.IP{103, 246, 112, 243}}, - {Hostname: "kul-010.vpn.privado.io", IP: net.IP{103, 246, 112, 247}}, - {Hostname: "kul-011.vpn.privado.io", IP: net.IP{103, 246, 112, 249}}, - {Hostname: "kul-013.vpn.privado.io", IP: net.IP{103, 246, 112, 253}}, - {Hostname: "lax-002.vpn.privado.io", IP: net.IP{81, 171, 62, 13}}, - {Hostname: "lax-006.vpn.privado.io", IP: net.IP{81, 171, 62, 80}}, - {Hostname: "lax-007.vpn.privado.io", IP: net.IP{81, 171, 62, 90}}, - {Hostname: "lax-011.vpn.privado.io", IP: net.IP{45, 152, 182, 241}}, - {Hostname: "lax-012.vpn.privado.io", IP: net.IP{45, 152, 182, 248}}, - {Hostname: "lhr-001.vpn.privado.io", IP: net.IP{217, 138, 195, 163}}, - {Hostname: "lhr-002.vpn.privado.io", IP: net.IP{217, 138, 195, 168}}, - {Hostname: "lhr-003.vpn.privado.io", IP: net.IP{217, 138, 195, 173}}, - {Hostname: "lhr-004.vpn.privado.io", IP: net.IP{217, 138, 195, 178}}, - {Hostname: "lis-001.vpn.privado.io", IP: net.IP{89, 26, 243, 153}}, - {Hostname: "lis-002.vpn.privado.io", IP: net.IP{89, 26, 243, 154}}, - {Hostname: "mad-001.vpn.privado.io", IP: net.IP{217, 138, 218, 131}}, - {Hostname: "mad-002.vpn.privado.io", IP: net.IP{217, 138, 218, 138}}, - {Hostname: "mad-004.vpn.privado.io", IP: net.IP{217, 138, 218, 152}}, - {Hostname: "man-002.vpn.privado.io", IP: net.IP{217, 138, 196, 138}}, - {Hostname: "mex-001.vpn.privado.io", IP: net.IP{169, 57, 96, 52}}, - {Hostname: "mex-004.vpn.privado.io", IP: net.IP{81, 171, 63, 13}}, - {Hostname: "mex-005.vpn.privado.io", IP: net.IP{81, 171, 63, 23}}, - {Hostname: "mex-006.vpn.privado.io", IP: net.IP{81, 171, 63, 33}}, - {Hostname: "mex-008.vpn.privado.io", IP: net.IP{81, 171, 63, 54}}, - {Hostname: "mex-009.vpn.privado.io", IP: net.IP{81, 171, 63, 64}}, - {Hostname: "mex-010.vpn.privado.io", IP: net.IP{81, 171, 63, 74}}, - {Hostname: "mia-002.vpn.privado.io", IP: net.IP{86, 106, 87, 136}}, - {Hostname: "mia-003.vpn.privado.io", IP: net.IP{86, 106, 87, 141}}, - {Hostname: "mxp-002.vpn.privado.io", IP: net.IP{89, 40, 182, 201}}, - {Hostname: "nrt-001.vpn.privado.io", IP: net.IP{217, 138, 252, 3}}, - {Hostname: "nrt-002.vpn.privado.io", IP: net.IP{217, 138, 252, 10}}, - {Hostname: "ord-005.vpn.privado.io", IP: net.IP{23, 254, 112, 145}}, - {Hostname: "ord-006.vpn.privado.io", IP: net.IP{23, 254, 112, 152}}, - {Hostname: "ord-007.vpn.privado.io", IP: net.IP{23, 108, 95, 203}}, - {Hostname: "ord-011.vpn.privado.io", IP: net.IP{23, 108, 95, 228}}, - {Hostname: "ord-016.vpn.privado.io", IP: net.IP{23, 108, 95, 238}}, - {Hostname: "ord-017.vpn.privado.io", IP: net.IP{23, 108, 95, 240}}, - {Hostname: "ord-018.vpn.privado.io", IP: net.IP{23, 108, 95, 242}}, - {Hostname: "ord-019.vpn.privado.io", IP: net.IP{23, 108, 95, 244}}, - {Hostname: "ord-021.vpn.privado.io", IP: net.IP{108, 62, 107, 153}}, - {Hostname: "ord-024.vpn.privado.io", IP: net.IP{108, 62, 107, 160}}, - {Hostname: "ord-026.vpn.privado.io", IP: net.IP{108, 62, 107, 164}}, - {Hostname: "ord-027.vpn.privado.io", IP: net.IP{108, 62, 107, 166}}, - {Hostname: "ord-028.vpn.privado.io", IP: net.IP{108, 62, 107, 168}}, - {Hostname: "ord-029.vpn.privado.io", IP: net.IP{108, 62, 107, 170}}, - {Hostname: "ord-033.vpn.privado.io", IP: net.IP{108, 62, 107, 178}}, - {Hostname: "ord-034.vpn.privado.io", IP: net.IP{108, 62, 107, 180}}, - {Hostname: "ord-037.vpn.privado.io", IP: net.IP{23, 82, 107, 69}}, - {Hostname: "ord-038.vpn.privado.io", IP: net.IP{23, 82, 107, 71}}, - {Hostname: "ord-040.vpn.privado.io", IP: net.IP{23, 82, 107, 75}}, - {Hostname: "ord-043.vpn.privado.io", IP: net.IP{23, 82, 107, 81}}, - {Hostname: "ord-045.vpn.privado.io", IP: net.IP{23, 82, 107, 85}}, - {Hostname: "ord-047.vpn.privado.io", IP: net.IP{23, 82, 107, 89}}, - {Hostname: "ord-048.vpn.privado.io", IP: net.IP{23, 82, 107, 91}}, - {Hostname: "ord-051.vpn.privado.io", IP: net.IP{23, 82, 107, 97}}, - {Hostname: "ord-054.vpn.privado.io", IP: net.IP{23, 82, 107, 103}}, - {Hostname: "ord-056.vpn.privado.io", IP: net.IP{23, 82, 107, 107}}, - {Hostname: "ord-057.vpn.privado.io", IP: net.IP{23, 82, 107, 109}}, - {Hostname: "ord-059.vpn.privado.io", IP: net.IP{23, 82, 107, 113}}, - {Hostname: "ord-060.vpn.privado.io", IP: net.IP{23, 82, 107, 115}}, - {Hostname: "ord-061.vpn.privado.io", IP: net.IP{23, 82, 107, 117}}, - {Hostname: "osl-002.vpn.privado.io", IP: net.IP{84, 247, 50, 119}}, - {Hostname: "otp-001.vpn.privado.io", IP: net.IP{89, 46, 102, 179}}, - {Hostname: "pdx-001.vpn.privado.io", IP: net.IP{104, 255, 228, 131}}, - {Hostname: "pdx-005.vpn.privado.io", IP: net.IP{104, 255, 228, 147}}, - {Hostname: "pdx-009.vpn.privado.io", IP: net.IP{104, 255, 228, 163}}, - {Hostname: "pdx-010.vpn.privado.io", IP: net.IP{104, 255, 228, 167}}, - {Hostname: "pdx-011.vpn.privado.io", IP: net.IP{104, 255, 228, 171}}, - {Hostname: "pdx-012.vpn.privado.io", IP: net.IP{104, 255, 228, 175}}, - {Hostname: "pdx-013.vpn.privado.io", IP: net.IP{104, 255, 228, 179}}, - {Hostname: "pdx-014.vpn.privado.io", IP: net.IP{104, 255, 228, 183}}, - {Hostname: "pdx-016.vpn.privado.io", IP: net.IP{104, 255, 228, 195}}, - {Hostname: "pdx-017.vpn.privado.io", IP: net.IP{104, 255, 228, 199}}, - {Hostname: "pdx-019.vpn.privado.io", IP: net.IP{104, 255, 228, 207}}, - {Hostname: "pdx-020.vpn.privado.io", IP: net.IP{104, 255, 228, 211}}, - {Hostname: "pdx-021.vpn.privado.io", IP: net.IP{104, 255, 228, 215}}, - {Hostname: "pdx-022.vpn.privado.io", IP: net.IP{104, 255, 228, 219}}, - {Hostname: "pdx-026.vpn.privado.io", IP: net.IP{104, 255, 228, 235}}, - {Hostname: "pdx-028.vpn.privado.io", IP: net.IP{104, 255, 228, 243}}, - {Hostname: "pdx-030.vpn.privado.io", IP: net.IP{104, 255, 228, 251}}, - {Hostname: "prg-001.vpn.privado.io", IP: net.IP{185, 216, 35, 99}}, - {Hostname: "prg-002.vpn.privado.io", IP: net.IP{185, 216, 35, 105}}, - {Hostname: "rix-001.vpn.privado.io", IP: net.IP{109, 248, 149, 35}}, - {Hostname: "rix-002.vpn.privado.io", IP: net.IP{109, 248, 149, 40}}, - {Hostname: "rkv-002.vpn.privado.io", IP: net.IP{82, 221, 131, 127}}, - {Hostname: "sea-001.vpn.privado.io", IP: net.IP{23, 81, 208, 96}}, - {Hostname: "sea-003.vpn.privado.io", IP: net.IP{23, 19, 87, 109}}, - {Hostname: "sea-004.vpn.privado.io", IP: net.IP{23, 19, 87, 116}}, - {Hostname: "sin-001.vpn.privado.io", IP: net.IP{92, 119, 178, 131}}, - {Hostname: "sin-002.vpn.privado.io", IP: net.IP{92, 119, 178, 138}}, - {Hostname: "sin-003.vpn.privado.io", IP: net.IP{92, 119, 178, 145}}, - {Hostname: "sin-004.vpn.privado.io", IP: net.IP{92, 119, 178, 152}}, - {Hostname: "sof-002.vpn.privado.io", IP: net.IP{217, 138, 221, 169}}, - {Hostname: "stl-001.vpn.privado.io", IP: net.IP{148, 72, 170, 145}}, - {Hostname: "stl-002.vpn.privado.io", IP: net.IP{148, 72, 172, 82}}, - {Hostname: "syd-001.vpn.privado.io", IP: net.IP{93, 115, 35, 35}}, - {Hostname: "syd-002.vpn.privado.io", IP: net.IP{93, 115, 35, 42}}, - {Hostname: "syd-003.vpn.privado.io", IP: net.IP{93, 115, 35, 49}}, - {Hostname: "syd-004.vpn.privado.io", IP: net.IP{93, 115, 35, 56}}, - {Hostname: "vie-001.vpn.privado.io", IP: net.IP{5, 253, 207, 227}}, - {Hostname: "vno-001.vpn.privado.io", IP: net.IP{185, 64, 104, 176}}, - {Hostname: "vno-002.vpn.privado.io", IP: net.IP{185, 64, 104, 180}}, - {Hostname: "waw-001.vpn.privado.io", IP: net.IP{217, 138, 209, 163}}, - {Hostname: "waw-002.vpn.privado.io", IP: net.IP{217, 138, 209, 164}}, - {Hostname: "waw-003.vpn.privado.io", IP: net.IP{217, 138, 209, 165}}, - {Hostname: "waw-004.vpn.privado.io", IP: net.IP{217, 138, 209, 166}}, - {Hostname: "waw-005.vpn.privado.io", IP: net.IP{146, 59, 31, 2}}, - {Hostname: "waw-008.vpn.privado.io", IP: net.IP{146, 59, 31, 8}}, - {Hostname: "waw-009.vpn.privado.io", IP: net.IP{146, 59, 31, 10}}, - {Hostname: "waw-010.vpn.privado.io", IP: net.IP{146, 59, 31, 12}}, - {Hostname: "waw-012.vpn.privado.io", IP: net.IP{146, 59, 31, 16}}, - {Hostname: "waw-014.vpn.privado.io", IP: net.IP{146, 59, 31, 20}}, - {Hostname: "waw-015.vpn.privado.io", IP: net.IP{146, 59, 31, 22}}, - {Hostname: "waw-018.vpn.privado.io", IP: net.IP{146, 59, 31, 28}}, - {Hostname: "waw-021.vpn.privado.io", IP: net.IP{146, 59, 31, 34}}, - {Hostname: "waw-022.vpn.privado.io", IP: net.IP{146, 59, 31, 36}}, - {Hostname: "waw-023.vpn.privado.io", IP: net.IP{146, 59, 31, 38}}, - {Hostname: "waw-025.vpn.privado.io", IP: net.IP{146, 59, 31, 42}}, - {Hostname: "waw-027.vpn.privado.io", IP: net.IP{146, 59, 31, 46}}, - {Hostname: "waw-028.vpn.privado.io", IP: net.IP{146, 59, 31, 48}}, - {Hostname: "waw-029.vpn.privado.io", IP: net.IP{146, 59, 31, 50}}, - {Hostname: "waw-030.vpn.privado.io", IP: net.IP{146, 59, 31, 52}}, - {Hostname: "waw-031.vpn.privado.io", IP: net.IP{146, 59, 31, 54}}, - {Hostname: "waw-032.vpn.privado.io", IP: net.IP{146, 59, 31, 56}}, - {Hostname: "waw-033.vpn.privado.io", IP: net.IP{146, 59, 31, 58}}, - {Hostname: "waw-034.vpn.privado.io", IP: net.IP{146, 59, 31, 60}}, - {Hostname: "waw-035.vpn.privado.io", IP: net.IP{146, 59, 31, 62}}, - {Hostname: "waw-036.vpn.privado.io", IP: net.IP{146, 59, 31, 64}}, - {Hostname: "waw-037.vpn.privado.io", IP: net.IP{146, 59, 31, 66}}, - {Hostname: "waw-040.vpn.privado.io", IP: net.IP{146, 59, 31, 72}}, - {Hostname: "waw-041.vpn.privado.io", IP: net.IP{146, 59, 31, 74}}, - {Hostname: "waw-042.vpn.privado.io", IP: net.IP{146, 59, 31, 76}}, - {Hostname: "waw-043.vpn.privado.io", IP: net.IP{146, 59, 31, 78}}, - {Hostname: "waw-046.vpn.privado.io", IP: net.IP{146, 59, 31, 84}}, - {Hostname: "waw-047.vpn.privado.io", IP: net.IP{146, 59, 31, 86}}, - {Hostname: "waw-051.vpn.privado.io", IP: net.IP{146, 59, 31, 94}}, - {Hostname: "waw-052.vpn.privado.io", IP: net.IP{146, 59, 31, 96}}, - {Hostname: "waw-053.vpn.privado.io", IP: net.IP{146, 59, 31, 98}}, - {Hostname: "waw-054.vpn.privado.io", IP: net.IP{146, 59, 31, 100}}, - {Hostname: "waw-058.vpn.privado.io", IP: net.IP{146, 59, 31, 109}}, - {Hostname: "yul-001.vpn.privado.io", IP: net.IP{217, 138, 213, 67}}, - {Hostname: "yul-002.vpn.privado.io", IP: net.IP{217, 138, 213, 72}}, - {Hostname: "yyz-003.vpn.privado.io", IP: net.IP{199, 189, 27, 19}}, - {Hostname: "zrh-002.vpn.privado.io", IP: net.IP{185, 156, 175, 202}}, - {Hostname: "zrh-003.vpn.privado.io", IP: net.IP{185, 156, 175, 209}}, - {Hostname: "zrh-004.vpn.privado.io", IP: net.IP{185, 156, 175, 216}}, + {Country: "Argentina", Region: "Buenos Aires F.D.", City: "Buenos Aires", Hostname: "eze-001.vpn.privado.io", IP: net.IP{168, 205, 93, 211}}, + {Country: "Australia", Region: "New South Wales", City: "Sydney", Hostname: "syd-001.vpn.privado.io", IP: net.IP{93, 115, 35, 35}}, + {Country: "Australia", Region: "New South Wales", City: "Sydney", Hostname: "syd-002.vpn.privado.io", IP: net.IP{93, 115, 35, 42}}, + {Country: "Australia", Region: "New South Wales", City: "Sydney", Hostname: "syd-003.vpn.privado.io", IP: net.IP{93, 115, 35, 49}}, + {Country: "Australia", Region: "New South Wales", City: "Sydney", Hostname: "syd-004.vpn.privado.io", IP: net.IP{93, 115, 35, 56}}, + {Country: "Austria", Region: "Vienna", City: "Vienna", Hostname: "vie-001.vpn.privado.io", IP: net.IP{5, 253, 207, 227}}, + {Country: "Austria", Region: "Vienna", City: "Vienna", Hostname: "vie-002.vpn.privado.io", IP: net.IP{5, 253, 207, 234}}, + {Country: "Austria", Region: "Vienna", City: "Vienna", Hostname: "vie-003.vpn.privado.io", IP: net.IP{5, 253, 207, 241}}, + {Country: "Austria", Region: "Vienna", City: "Vienna", Hostname: "vie-004.vpn.privado.io", IP: net.IP{5, 253, 207, 248}}, + {Country: "Belgium", Region: "Flanders", City: "Zaventem", Hostname: "bru-001.vpn.privado.io", IP: net.IP{217, 138, 211, 163}}, + {Country: "Belgium", Region: "Flanders", City: "Zaventem", Hostname: "bru-002.vpn.privado.io", IP: net.IP{217, 138, 211, 170}}, + {Country: "Belgium", Region: "Flanders", City: "Zaventem", Hostname: "bru-003.vpn.privado.io", IP: net.IP{217, 138, 211, 177}}, + {Country: "Belgium", Region: "Flanders", City: "Zaventem", Hostname: "bru-004.vpn.privado.io", IP: net.IP{217, 138, 211, 184}}, + {Country: "Brazil", Region: "São Paulo", City: "São Paulo", Hostname: "gru-001.vpn.privado.io", IP: net.IP{177, 54, 145, 193}}, + {Country: "Brazil", Region: "São Paulo", City: "São Paulo", Hostname: "gru-002.vpn.privado.io", IP: net.IP{177, 54, 145, 197}}, + {Country: "Bulgaria", Region: "Sofia-Capital", City: "Sofia", Hostname: "sof-001.vpn.privado.io", IP: net.IP{217, 138, 221, 163}}, + {Country: "Bulgaria", Region: "Sofia-Capital", City: "Sofia", Hostname: "sof-002.vpn.privado.io", IP: net.IP{217, 138, 221, 169}}, + {Country: "Canada", Region: "British Columbia", City: "Vancouver", Hostname: "yvr-001.vpn.privado.io", IP: net.IP{71, 19, 248, 57}}, + {Country: "Canada", Region: "British Columbia", City: "Vancouver", Hostname: "yvr-002.vpn.privado.io", IP: net.IP{71, 19, 248, 113}}, + {Country: "Canada", Region: "Ontario", City: "Toronto", Hostname: "yyz-003.vpn.privado.io", IP: net.IP{199, 189, 27, 19}}, + {Country: "Canada", Region: "Quebec", City: "Montréal", Hostname: "yul-001.vpn.privado.io", IP: net.IP{217, 138, 213, 67}}, + {Country: "Canada", Region: "Quebec", City: "Montréal", Hostname: "yul-002.vpn.privado.io", IP: net.IP{217, 138, 213, 72}}, + {Country: "Canada", Region: "Quebec", City: "Montréal", Hostname: "yul-004.vpn.privado.io", IP: net.IP{217, 138, 213, 82}}, + {Country: "Czech Republic", Region: "Hlavní město Praha", City: "Prague", Hostname: "prg-002.vpn.privado.io", IP: net.IP{185, 216, 35, 105}}, + {Country: "Denmark", Region: "Capital Region", City: "Copenhagen", Hostname: "cph-001.vpn.privado.io", IP: net.IP{2, 58, 46, 35}}, + {Country: "Denmark", Region: "Capital Region", City: "Copenhagen", Hostname: "cph-002.vpn.privado.io", IP: net.IP{2, 58, 46, 42}}, + {Country: "Denmark", Region: "Capital Region", City: "Copenhagen", Hostname: "cph-003.vpn.privado.io", IP: net.IP{2, 58, 46, 49}}, + {Country: "Denmark", Region: "Capital Region", City: "Copenhagen", Hostname: "cph-004.vpn.privado.io", IP: net.IP{2, 58, 46, 56}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-005.vpn.privado.io", IP: net.IP{146, 59, 31, 2}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-006.vpn.privado.io", IP: net.IP{146, 59, 31, 4}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-007.vpn.privado.io", IP: net.IP{146, 59, 31, 6}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-008.vpn.privado.io", IP: net.IP{146, 59, 31, 8}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-009.vpn.privado.io", IP: net.IP{146, 59, 31, 10}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-010.vpn.privado.io", IP: net.IP{146, 59, 31, 12}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-013.vpn.privado.io", IP: net.IP{146, 59, 31, 18}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-015.vpn.privado.io", IP: net.IP{146, 59, 31, 22}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-016.vpn.privado.io", IP: net.IP{146, 59, 31, 24}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-017.vpn.privado.io", IP: net.IP{146, 59, 31, 26}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-018.vpn.privado.io", IP: net.IP{146, 59, 31, 28}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-020.vpn.privado.io", IP: net.IP{146, 59, 31, 32}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-023.vpn.privado.io", IP: net.IP{146, 59, 31, 38}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-025.vpn.privado.io", IP: net.IP{146, 59, 31, 42}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-026.vpn.privado.io", IP: net.IP{146, 59, 31, 44}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-027.vpn.privado.io", IP: net.IP{146, 59, 31, 46}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-028.vpn.privado.io", IP: net.IP{146, 59, 31, 48}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-029.vpn.privado.io", IP: net.IP{146, 59, 31, 50}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-030.vpn.privado.io", IP: net.IP{146, 59, 31, 52}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-031.vpn.privado.io", IP: net.IP{146, 59, 31, 54}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-032.vpn.privado.io", IP: net.IP{146, 59, 31, 56}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-033.vpn.privado.io", IP: net.IP{146, 59, 31, 58}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-034.vpn.privado.io", IP: net.IP{146, 59, 31, 60}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-035.vpn.privado.io", IP: net.IP{146, 59, 31, 62}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-037.vpn.privado.io", IP: net.IP{146, 59, 31, 66}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-039.vpn.privado.io", IP: net.IP{146, 59, 31, 70}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-041.vpn.privado.io", IP: net.IP{146, 59, 31, 74}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-042.vpn.privado.io", IP: net.IP{146, 59, 31, 76}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-043.vpn.privado.io", IP: net.IP{146, 59, 31, 78}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-044.vpn.privado.io", IP: net.IP{146, 59, 31, 80}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-046.vpn.privado.io", IP: net.IP{146, 59, 31, 84}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-047.vpn.privado.io", IP: net.IP{146, 59, 31, 86}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-048.vpn.privado.io", IP: net.IP{146, 59, 31, 88}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-049.vpn.privado.io", IP: net.IP{146, 59, 31, 90}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-051.vpn.privado.io", IP: net.IP{146, 59, 31, 94}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-053.vpn.privado.io", IP: net.IP{146, 59, 31, 98}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-054.vpn.privado.io", IP: net.IP{146, 59, 31, 100}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-056.vpn.privado.io", IP: net.IP{146, 59, 31, 104}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-057.vpn.privado.io", IP: net.IP{146, 59, 31, 106}}, + {Country: "France", Region: "Hauts-de-France", City: "Roubaix", Hostname: "waw-058.vpn.privado.io", IP: net.IP{146, 59, 31, 109}}, + {Country: "France", Region: "Île-de-France", City: "Paris", Hostname: "cdg-001.vpn.privado.io", IP: net.IP{89, 40, 183, 99}}, + {Country: "France", Region: "Île-de-France", City: "Paris", Hostname: "cdg-002.vpn.privado.io", IP: net.IP{89, 40, 183, 104}}, + {Country: "France", Region: "Île-de-France", City: "Paris", Hostname: "cdg-003.vpn.privado.io", IP: net.IP{89, 40, 183, 109}}, + {Country: "France", Region: "Île-de-France", City: "Paris", Hostname: "cdg-004.vpn.privado.io", IP: net.IP{89, 40, 183, 114}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "ber-001.vpn.privado.io", IP: net.IP{89, 36, 76, 35}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "fra-001.vpn.privado.io", IP: net.IP{91, 148, 232, 10}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "fra-002.vpn.privado.io", IP: net.IP{91, 148, 232, 20}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "fra-003.vpn.privado.io", IP: net.IP{91, 148, 232, 30}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "fra-004.vpn.privado.io", IP: net.IP{91, 148, 232, 40}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "fra-005.vpn.privado.io", IP: net.IP{91, 148, 233, 7}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "fra-006.vpn.privado.io", IP: net.IP{91, 148, 233, 8}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "fra-007.vpn.privado.io", IP: net.IP{91, 148, 233, 9}}, + {Country: "Germany", Region: "Hesse", City: "Frankfurt am Main", Hostname: "fra-008.vpn.privado.io", IP: net.IP{91, 148, 233, 10}}, + {Country: "Greece", Region: "Attica", City: "Athens", Hostname: "ath-001.vpn.privado.io", IP: net.IP{188, 123, 126, 61}}, + {Country: "Greece", Region: "Attica", City: "Athens", Hostname: "ath-002.vpn.privado.io", IP: net.IP{188, 123, 126, 64}}, + {Country: "Greece", Region: "Attica", City: "Athens", Hostname: "ath-003.vpn.privado.io", IP: net.IP{188, 123, 126, 68}}, + {Country: "Greece", Region: "Attica", City: "Athens", Hostname: "ath-004.vpn.privado.io", IP: net.IP{188, 123, 126, 72}}, + {Country: "Hong Kong", Region: "Central and Western", City: "Hong Kong", Hostname: "hkg-001.vpn.privado.io", IP: net.IP{209, 58, 185, 88}}, + {Country: "Hong Kong", Region: "Central and Western", City: "Hong Kong", Hostname: "hkg-003.vpn.privado.io", IP: net.IP{209, 58, 185, 108}}, + {Country: "Hong Kong", Region: "Central and Western", City: "Hong Kong", Hostname: "hkg-004.vpn.privado.io", IP: net.IP{209, 58, 185, 120}}, + {Country: "Hungary", Region: "Budapest", City: "Budapest", Hostname: "bud-001.vpn.privado.io", IP: net.IP{185, 128, 26, 194}}, + {Country: "Hungary", Region: "Budapest", City: "Budapest", Hostname: "bud-002.vpn.privado.io", IP: net.IP{185, 128, 26, 200}}, + {Country: "Iceland", Region: "Capital Region", City: "Reykjavík", Hostname: "rkv-001.vpn.privado.io", IP: net.IP{82, 221, 131, 78}}, + {Country: "Iceland", Region: "Capital Region", City: "Reykjavík", Hostname: "rkv-002.vpn.privado.io", IP: net.IP{82, 221, 131, 127}}, + {Country: "India", Region: "Maharashtra", City: "Mumbai", Hostname: "bom-001.vpn.privado.io", IP: net.IP{103, 26, 204, 61}}, + {Country: "India", Region: "Maharashtra", City: "Mumbai", Hostname: "bom-002.vpn.privado.io", IP: net.IP{103, 26, 204, 70}}, + {Country: "Ireland", Region: "Leinster", City: "Dublin", Hostname: "dub-001.vpn.privado.io", IP: net.IP{84, 247, 48, 227}}, + {Country: "Ireland", Region: "Leinster", City: "Dublin", Hostname: "dub-002.vpn.privado.io", IP: net.IP{84, 247, 48, 234}}, + {Country: "Ireland", Region: "Leinster", City: "Dublin", Hostname: "dub-003.vpn.privado.io", IP: net.IP{84, 247, 48, 241}}, + {Country: "Ireland", Region: "Leinster", City: "Dublin", Hostname: "dub-004.vpn.privado.io", IP: net.IP{84, 247, 48, 248}}, + {Country: "Israel", Region: "Tel Aviv", City: "Tel Aviv", Hostname: "jrs-001.vpn.privado.io", IP: net.IP{31, 168, 251, 131}}, + {Country: "Israel", Region: "Tel Aviv", City: "Tel Aviv", Hostname: "jrs-002.vpn.privado.io", IP: net.IP{31, 168, 251, 137}}, + {Country: "Italy", Region: "Lombardy", City: "Figino", Hostname: "mxp-001.vpn.privado.io", IP: net.IP{89, 40, 182, 195}}, + {Country: "Italy", Region: "Lombardy", City: "Figino", Hostname: "mxp-002.vpn.privado.io", IP: net.IP{89, 40, 182, 201}}, + {Country: "Japan", Region: "Tokyo", City: "Tokyo", Hostname: "nrt-001.vpn.privado.io", IP: net.IP{217, 138, 252, 3}}, + {Country: "Japan", Region: "Tokyo", City: "Tokyo", Hostname: "nrt-002.vpn.privado.io", IP: net.IP{217, 138, 252, 10}}, + {Country: "Japan", Region: "Tokyo", City: "Tokyo", Hostname: "nrt-003.vpn.privado.io", IP: net.IP{217, 138, 252, 17}}, + {Country: "Korea", Region: "Seoul", City: "Seoul", Hostname: "icn-001.vpn.privado.io", IP: net.IP{169, 56, 73, 146}}, + {Country: "Korea", Region: "Seoul", City: "Seoul", Hostname: "icn-002.vpn.privado.io", IP: net.IP{169, 56, 73, 153}}, + {Country: "Latvia", Region: "Riga", City: "Riga", Hostname: "rix-001.vpn.privado.io", IP: net.IP{109, 248, 149, 35}}, + {Country: "Latvia", Region: "Riga", City: "Riga", Hostname: "rix-002.vpn.privado.io", IP: net.IP{109, 248, 149, 40}}, + {Country: "Lithuania", Region: "Marijampolė County", City: "Marijampolė", Hostname: "vno-001.vpn.privado.io", IP: net.IP{185, 64, 104, 176}}, + {Country: "Lithuania", Region: "Vilnius", City: "Vilnius", Hostname: "vno-002.vpn.privado.io", IP: net.IP{185, 64, 104, 180}}, + {Country: "Netherlands", Region: "North Holland", City: "Amsterdam", Hostname: "ams-009.vpn.privado.io", IP: net.IP{91, 148, 228, 10}}, + {Country: "Netherlands", Region: "North Holland", City: "Amsterdam", Hostname: "ams-010.vpn.privado.io", IP: net.IP{91, 148, 228, 20}}, + {Country: "Netherlands", Region: "North Holland", City: "Amsterdam", Hostname: "ams-011.vpn.privado.io", IP: net.IP{91, 148, 228, 30}}, + {Country: "Netherlands", Region: "North Holland", City: "Amsterdam", Hostname: "ams-012.vpn.privado.io", IP: net.IP{91, 148, 228, 40}}, + {Country: "Netherlands", Region: "North Holland", City: "Amsterdam", Hostname: "ams-013.vpn.privado.io", IP: net.IP{91, 148, 228, 50}}, + {Country: "Netherlands", Region: "North Holland", City: "Amsterdam", Hostname: "ams-014.vpn.privado.io", IP: net.IP{91, 148, 228, 60}}, + {Country: "Netherlands", Region: "North Holland", City: "Amsterdam", Hostname: "ams-015.vpn.privado.io", IP: net.IP{91, 148, 228, 70}}, + {Country: "Netherlands", Region: "North Holland", City: "Amsterdam", Hostname: "ams-016.vpn.privado.io", IP: net.IP{91, 148, 228, 80}}, + {Country: "New Zealand", Region: "Auckland", City: "Auckland", Hostname: "akl-004.vpn.privado.io", IP: net.IP{103, 76, 164, 99}}, + {Country: "New Zealand", Region: "Auckland", City: "Auckland", Hostname: "akl-005.vpn.privado.io", IP: net.IP{103, 76, 164, 105}}, + {Country: "Norway", Region: "Oslo", City: "Oslo", Hostname: "osl-001.vpn.privado.io", IP: net.IP{84, 247, 50, 115}}, + {Country: "Norway", Region: "Oslo", City: "Oslo", Hostname: "osl-002.vpn.privado.io", IP: net.IP{84, 247, 50, 119}}, + {Country: "Poland", Region: "Mazovia", City: "Warsaw", Hostname: "waw-001.vpn.privado.io", IP: net.IP{217, 138, 209, 163}}, + {Country: "Poland", Region: "Mazovia", City: "Warsaw", Hostname: "waw-002.vpn.privado.io", IP: net.IP{217, 138, 209, 164}}, + {Country: "Poland", Region: "Mazovia", City: "Warsaw", Hostname: "waw-003.vpn.privado.io", IP: net.IP{217, 138, 209, 165}}, + {Country: "Poland", Region: "Mazovia", City: "Warsaw", Hostname: "waw-004.vpn.privado.io", IP: net.IP{217, 138, 209, 166}}, + {Country: "Portugal", Region: "Lisbon", City: "Lisbon", Hostname: "lis-001.vpn.privado.io", IP: net.IP{89, 26, 243, 153}}, + {Country: "Portugal", Region: "Lisbon", City: "Lisbon", Hostname: "lis-002.vpn.privado.io", IP: net.IP{89, 26, 243, 154}}, + {Country: "Romania", Region: "Bucureşti", City: "Bucharest", Hostname: "otp-001.vpn.privado.io", IP: net.IP{89, 46, 102, 179}}, + {Country: "Romania", Region: "Bucureşti", City: "Bucharest", Hostname: "otp-002.vpn.privado.io", IP: net.IP{89, 46, 102, 185}}, + {Country: "Serbia", Region: "Central Serbia", City: "Belgrade", Hostname: "beg-001.vpn.privado.io", IP: net.IP{89, 38, 224, 19}}, + {Country: "Serbia", Region: "Central Serbia", City: "Belgrade", Hostname: "beg-002.vpn.privado.io", IP: net.IP{89, 38, 224, 25}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-002.vpn.privado.io", IP: net.IP{103, 246, 112, 231}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-003.vpn.privado.io", IP: net.IP{103, 246, 112, 233}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-004.vpn.privado.io", IP: net.IP{103, 246, 112, 235}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-005.vpn.privado.io", IP: net.IP{103, 246, 112, 237}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-006.vpn.privado.io", IP: net.IP{103, 246, 112, 239}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-007.vpn.privado.io", IP: net.IP{103, 246, 112, 241}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-009.vpn.privado.io", IP: net.IP{103, 246, 112, 245}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-010.vpn.privado.io", IP: net.IP{103, 246, 112, 247}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-012.vpn.privado.io", IP: net.IP{103, 246, 112, 251}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "kul-013.vpn.privado.io", IP: net.IP{103, 246, 112, 253}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "sin-001.vpn.privado.io", IP: net.IP{92, 119, 178, 131}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "sin-002.vpn.privado.io", IP: net.IP{92, 119, 178, 138}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "sin-003.vpn.privado.io", IP: net.IP{92, 119, 178, 145}}, + {Country: "Singapore", Region: "Singapore", City: "Singapore", Hostname: "sin-004.vpn.privado.io", IP: net.IP{92, 119, 178, 152}}, + {Country: "Slovakia", Region: "Bratislavský Kraj", City: "Bratislava", Hostname: "bts-001.vpn.privado.io", IP: net.IP{37, 120, 221, 227}}, + {Country: "South Africa", Region: "Gauteng", City: "Johannesburg", Hostname: "jnb-001.vpn.privado.io", IP: net.IP{172, 107, 93, 131}}, + {Country: "South Africa", Region: "Gauteng", City: "Johannesburg", Hostname: "jnb-002.vpn.privado.io", IP: net.IP{172, 107, 93, 137}}, + {Country: "Spain", Region: "Madrid", City: "Madrid", Hostname: "mad-001.vpn.privado.io", IP: net.IP{217, 138, 218, 131}}, + {Country: "Spain", Region: "Madrid", City: "Madrid", Hostname: "mad-002.vpn.privado.io", IP: net.IP{217, 138, 218, 138}}, + {Country: "Spain", Region: "Madrid", City: "Madrid", Hostname: "mad-003.vpn.privado.io", IP: net.IP{217, 138, 218, 145}}, + {Country: "Spain", Region: "Madrid", City: "Madrid", Hostname: "mad-004.vpn.privado.io", IP: net.IP{217, 138, 218, 152}}, + {Country: "Sweden", Region: "Stockholm", City: "Stockholm", Hostname: "arn-001.vpn.privado.io", IP: net.IP{86, 106, 103, 67}}, + {Country: "Sweden", Region: "Stockholm", City: "Stockholm", Hostname: "arn-002.vpn.privado.io", IP: net.IP{86, 106, 103, 74}}, + {Country: "Sweden", Region: "Stockholm", City: "Stockholm", Hostname: "arn-003.vpn.privado.io", IP: net.IP{86, 106, 103, 81}}, + {Country: "Sweden", Region: "Stockholm", City: "Stockholm", Hostname: "arn-004.vpn.privado.io", IP: net.IP{86, 106, 103, 88}}, + {Country: "Switzerland", Region: "Zurich", City: "Zürich", Hostname: "zrh-002.vpn.privado.io", IP: net.IP{185, 156, 175, 202}}, + {Country: "Switzerland", Region: "Zurich", City: "Zürich", Hostname: "zrh-003.vpn.privado.io", IP: net.IP{185, 156, 175, 209}}, + {Country: "Switzerland", Region: "Zurich", City: "Zürich", Hostname: "zrh-004.vpn.privado.io", IP: net.IP{185, 156, 175, 216}}, + {Country: "Thailand", Region: "Bangkok", City: "Bangkok", Hostname: "bkk-001.vpn.privado.io", IP: net.IP{119, 59, 111, 3}}, + {Country: "Thailand", Region: "Bangkok", City: "Bangkok", Hostname: "bkk-002.vpn.privado.io", IP: net.IP{119, 59, 111, 11}}, + {Country: "Turkey", Region: "Istanbul", City: "Istanbul", Hostname: "ist-001.vpn.privado.io", IP: net.IP{185, 84, 183, 3}}, + {Country: "Turkey", Region: "Istanbul", City: "Istanbul", Hostname: "ist-002.vpn.privado.io", IP: net.IP{185, 84, 183, 4}}, + {Country: "Ukraine", Region: "Kyiv City", City: "Kyiv", Hostname: "iev-001.vpn.privado.io", IP: net.IP{176, 103, 52, 40}}, + {Country: "Ukraine", Region: "Kyiv City", City: "Kyiv", Hostname: "iev-002.vpn.privado.io", IP: net.IP{176, 103, 53, 40}}, + {Country: "United Kingdom", Region: "England", City: "London", Hostname: "lhr-001.vpn.privado.io", IP: net.IP{217, 138, 195, 163}}, + {Country: "United Kingdom", Region: "England", City: "London", Hostname: "lhr-002.vpn.privado.io", IP: net.IP{217, 138, 195, 168}}, + {Country: "United Kingdom", Region: "England", City: "London", Hostname: "lhr-003.vpn.privado.io", IP: net.IP{217, 138, 195, 173}}, + {Country: "United Kingdom", Region: "England", City: "London", Hostname: "lhr-004.vpn.privado.io", IP: net.IP{217, 138, 195, 178}}, + {Country: "United Kingdom", Region: "England", City: "Manchester", Hostname: "man-001.vpn.privado.io", IP: net.IP{217, 138, 196, 131}}, + {Country: "United Kingdom", Region: "England", City: "Manchester", Hostname: "man-002.vpn.privado.io", IP: net.IP{217, 138, 196, 138}}, + {Country: "United Kingdom", Region: "England", City: "Manchester", Hostname: "man-003.vpn.privado.io", IP: net.IP{217, 138, 196, 145}}, + {Country: "United Kingdom", Region: "England", City: "Manchester", Hostname: "man-004.vpn.privado.io", IP: net.IP{217, 138, 196, 152}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-001.vpn.privado.io", IP: net.IP{81, 171, 62, 3}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-002.vpn.privado.io", IP: net.IP{81, 171, 62, 13}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-003.vpn.privado.io", IP: net.IP{81, 171, 62, 24}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-004.vpn.privado.io", IP: net.IP{81, 171, 62, 34}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-005.vpn.privado.io", IP: net.IP{81, 171, 62, 70}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-006.vpn.privado.io", IP: net.IP{81, 171, 62, 80}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-007.vpn.privado.io", IP: net.IP{81, 171, 62, 90}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-008.vpn.privado.io", IP: net.IP{81, 171, 62, 100}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "lax-010.vpn.privado.io", IP: net.IP{45, 152, 182, 234}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "mex-003.vpn.privado.io", IP: net.IP{81, 171, 63, 3}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "mex-004.vpn.privado.io", IP: net.IP{81, 171, 63, 13}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "mex-005.vpn.privado.io", IP: net.IP{81, 171, 63, 23}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "mex-006.vpn.privado.io", IP: net.IP{81, 171, 63, 33}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "mex-007.vpn.privado.io", IP: net.IP{81, 171, 63, 44}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "mex-008.vpn.privado.io", IP: net.IP{81, 171, 63, 54}}, + {Country: "United States", Region: "California", City: "Los Angeles", Hostname: "mex-009.vpn.privado.io", IP: net.IP{81, 171, 63, 64}}, + {Country: "United States", Region: "California", City: "Santa Clara", Hostname: "mex-001.vpn.privado.io", IP: net.IP{169, 57, 96, 52}}, + {Country: "United States", Region: "California", City: "Santa Clara", Hostname: "mex-002.vpn.privado.io", IP: net.IP{169, 57, 96, 57}}, + {Country: "United States", Region: "Florida", City: "Miami", Hostname: "mia-002.vpn.privado.io", IP: net.IP{86, 106, 87, 136}}, + {Country: "United States", Region: "Florida", City: "Miami", Hostname: "mia-003.vpn.privado.io", IP: net.IP{86, 106, 87, 141}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-007.vpn.privado.io", IP: net.IP{23, 108, 95, 203}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-011.vpn.privado.io", IP: net.IP{23, 108, 95, 228}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-012.vpn.privado.io", IP: net.IP{23, 108, 95, 230}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-014.vpn.privado.io", IP: net.IP{23, 108, 95, 234}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-015.vpn.privado.io", IP: net.IP{23, 108, 95, 236}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-016.vpn.privado.io", IP: net.IP{23, 108, 95, 238}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-017.vpn.privado.io", IP: net.IP{23, 108, 95, 240}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-018.vpn.privado.io", IP: net.IP{23, 108, 95, 242}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-019.vpn.privado.io", IP: net.IP{23, 108, 95, 244}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-020.vpn.privado.io", IP: net.IP{23, 108, 95, 246}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-021.vpn.privado.io", IP: net.IP{108, 62, 107, 153}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-022.vpn.privado.io", IP: net.IP{108, 62, 107, 156}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-024.vpn.privado.io", IP: net.IP{108, 62, 107, 160}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-025.vpn.privado.io", IP: net.IP{108, 62, 107, 162}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-026.vpn.privado.io", IP: net.IP{108, 62, 107, 164}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-027.vpn.privado.io", IP: net.IP{108, 62, 107, 166}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-028.vpn.privado.io", IP: net.IP{108, 62, 107, 168}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-029.vpn.privado.io", IP: net.IP{108, 62, 107, 170}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-030.vpn.privado.io", IP: net.IP{108, 62, 107, 172}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-031.vpn.privado.io", IP: net.IP{108, 62, 107, 174}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-032.vpn.privado.io", IP: net.IP{108, 62, 107, 176}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-033.vpn.privado.io", IP: net.IP{108, 62, 107, 178}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-034.vpn.privado.io", IP: net.IP{108, 62, 107, 180}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-046.vpn.privado.io", IP: net.IP{23, 82, 107, 87}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-048.vpn.privado.io", IP: net.IP{23, 82, 107, 91}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-049.vpn.privado.io", IP: net.IP{23, 82, 107, 93}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-050.vpn.privado.io", IP: net.IP{23, 82, 107, 95}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-052.vpn.privado.io", IP: net.IP{23, 82, 107, 99}}, + {Country: "United States", Region: "Illinois", City: "Chicago", Hostname: "ord-055.vpn.privado.io", IP: net.IP{23, 82, 107, 105}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-008.vpn.privado.io", IP: net.IP{23, 108, 95, 222}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-035.vpn.privado.io", IP: net.IP{23, 82, 107, 65}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-036.vpn.privado.io", IP: net.IP{23, 82, 107, 67}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-039.vpn.privado.io", IP: net.IP{23, 82, 107, 73}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-040.vpn.privado.io", IP: net.IP{23, 82, 107, 75}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-047.vpn.privado.io", IP: net.IP{23, 82, 107, 89}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-051.vpn.privado.io", IP: net.IP{23, 82, 107, 97}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-053.vpn.privado.io", IP: net.IP{23, 82, 107, 101}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-054.vpn.privado.io", IP: net.IP{23, 82, 107, 103}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-056.vpn.privado.io", IP: net.IP{23, 82, 107, 107}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-059.vpn.privado.io", IP: net.IP{23, 82, 107, 113}}, + {Country: "United States", Region: "Minnesota", City: "Minnetonka", Hostname: "ord-061.vpn.privado.io", IP: net.IP{23, 82, 107, 117}}, + {Country: "United States", Region: "Missouri", City: "St. Louis", Hostname: "stl-001.vpn.privado.io", IP: net.IP{148, 72, 170, 145}}, + {Country: "United States", Region: "Missouri", City: "St. Louis", Hostname: "stl-002.vpn.privado.io", IP: net.IP{148, 72, 172, 82}}, + {Country: "United States", Region: "New York", City: "Buffalo", Hostname: "ord-003.vpn.privado.io", IP: net.IP{23, 254, 112, 130}}, + {Country: "United States", Region: "New York", City: "Buffalo", Hostname: "ord-004.vpn.privado.io", IP: net.IP{23, 254, 112, 138}}, + {Country: "United States", Region: "New York", City: "Buffalo", Hostname: "ord-005.vpn.privado.io", IP: net.IP{23, 254, 112, 145}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-002.vpn.privado.io", IP: net.IP{217, 138, 208, 106}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-003.vpn.privado.io", IP: net.IP{217, 138, 208, 113}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-005.vpn.privado.io", IP: net.IP{37, 120, 244, 3}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-007.vpn.privado.io", IP: net.IP{37, 120, 244, 17}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-008.vpn.privado.io", IP: net.IP{37, 120, 244, 24}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-009.vpn.privado.io", IP: net.IP{23, 19, 225, 65}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-010.vpn.privado.io", IP: net.IP{23, 19, 225, 67}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-011.vpn.privado.io", IP: net.IP{23, 19, 225, 69}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-012.vpn.privado.io", IP: net.IP{23, 19, 225, 71}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-014.vpn.privado.io", IP: net.IP{23, 19, 225, 75}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-015.vpn.privado.io", IP: net.IP{23, 19, 225, 77}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-016.vpn.privado.io", IP: net.IP{23, 19, 225, 79}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-017.vpn.privado.io", IP: net.IP{23, 19, 225, 81}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-018.vpn.privado.io", IP: net.IP{23, 19, 225, 83}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-019.vpn.privado.io", IP: net.IP{23, 19, 225, 85}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-020.vpn.privado.io", IP: net.IP{23, 19, 225, 87}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-021.vpn.privado.io", IP: net.IP{23, 19, 225, 89}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-022.vpn.privado.io", IP: net.IP{23, 19, 225, 91}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-023.vpn.privado.io", IP: net.IP{23, 19, 225, 93}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-024.vpn.privado.io", IP: net.IP{23, 19, 225, 95}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-025.vpn.privado.io", IP: net.IP{23, 19, 225, 97}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-026.vpn.privado.io", IP: net.IP{23, 19, 225, 99}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-027.vpn.privado.io", IP: net.IP{23, 19, 225, 101}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-028.vpn.privado.io", IP: net.IP{23, 19, 225, 103}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-029.vpn.privado.io", IP: net.IP{23, 19, 225, 105}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-030.vpn.privado.io", IP: net.IP{23, 19, 225, 107}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-032.vpn.privado.io", IP: net.IP{23, 19, 225, 111}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-034.vpn.privado.io", IP: net.IP{23, 19, 225, 115}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-035.vpn.privado.io", IP: net.IP{23, 19, 225, 117}}, + {Country: "United States", Region: "New York", City: "New York City", Hostname: "jfk-036.vpn.privado.io", IP: net.IP{23, 19, 225, 119}}, + {Country: "United States", Region: "North Carolina", City: "Beaufort", Hostname: "ord-038.vpn.privado.io", IP: net.IP{23, 82, 107, 71}}, + {Country: "United States", Region: "North Carolina", City: "Beaufort", Hostname: "ord-041.vpn.privado.io", IP: net.IP{23, 82, 107, 77}}, + {Country: "United States", Region: "North Carolina", City: "Beaufort", Hostname: "ord-042.vpn.privado.io", IP: net.IP{23, 82, 107, 79}}, + {Country: "United States", Region: "North Carolina", City: "Beaufort", Hostname: "ord-044.vpn.privado.io", IP: net.IP{23, 82, 107, 83}}, + {Country: "United States", Region: "North Carolina", City: "Beaufort", Hostname: "ord-057.vpn.privado.io", IP: net.IP{23, 82, 107, 109}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-001.vpn.privado.io", IP: net.IP{104, 255, 228, 131}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-002.vpn.privado.io", IP: net.IP{104, 255, 228, 135}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-003.vpn.privado.io", IP: net.IP{104, 255, 228, 139}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-004.vpn.privado.io", IP: net.IP{104, 255, 228, 143}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-006.vpn.privado.io", IP: net.IP{104, 255, 228, 151}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-007.vpn.privado.io", IP: net.IP{104, 255, 228, 155}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-008.vpn.privado.io", IP: net.IP{104, 255, 228, 159}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-009.vpn.privado.io", IP: net.IP{104, 255, 228, 163}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-010.vpn.privado.io", IP: net.IP{104, 255, 228, 167}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-011.vpn.privado.io", IP: net.IP{104, 255, 228, 171}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-012.vpn.privado.io", IP: net.IP{104, 255, 228, 175}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-013.vpn.privado.io", IP: net.IP{104, 255, 228, 179}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-014.vpn.privado.io", IP: net.IP{104, 255, 228, 183}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-015.vpn.privado.io", IP: net.IP{104, 255, 228, 187}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-016.vpn.privado.io", IP: net.IP{104, 255, 228, 195}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-017.vpn.privado.io", IP: net.IP{104, 255, 228, 199}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-018.vpn.privado.io", IP: net.IP{104, 255, 228, 203}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-019.vpn.privado.io", IP: net.IP{104, 255, 228, 207}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-020.vpn.privado.io", IP: net.IP{104, 255, 228, 211}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-021.vpn.privado.io", IP: net.IP{104, 255, 228, 215}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-022.vpn.privado.io", IP: net.IP{104, 255, 228, 219}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-023.vpn.privado.io", IP: net.IP{104, 255, 228, 223}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-024.vpn.privado.io", IP: net.IP{104, 255, 228, 227}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-025.vpn.privado.io", IP: net.IP{104, 255, 228, 231}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-026.vpn.privado.io", IP: net.IP{104, 255, 228, 235}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-027.vpn.privado.io", IP: net.IP{104, 255, 228, 239}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-028.vpn.privado.io", IP: net.IP{104, 255, 228, 243}}, + {Country: "United States", Region: "Oregon", City: "Portland", Hostname: "pdx-030.vpn.privado.io", IP: net.IP{104, 255, 228, 251}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-001.vpn.privado.io", IP: net.IP{23, 105, 32, 243}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-002.vpn.privado.io", IP: net.IP{23, 105, 32, 244}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-003.vpn.privado.io", IP: net.IP{172, 241, 25, 157}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-006.vpn.privado.io", IP: net.IP{172, 241, 25, 163}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-007.vpn.privado.io", IP: net.IP{172, 241, 25, 165}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-008.vpn.privado.io", IP: net.IP{172, 241, 25, 167}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-009.vpn.privado.io", IP: net.IP{172, 241, 25, 169}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-010.vpn.privado.io", IP: net.IP{172, 241, 25, 171}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-011.vpn.privado.io", IP: net.IP{172, 241, 25, 173}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-012.vpn.privado.io", IP: net.IP{172, 241, 25, 175}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-013.vpn.privado.io", IP: net.IP{172, 241, 25, 177}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-014.vpn.privado.io", IP: net.IP{172, 241, 25, 179}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-015.vpn.privado.io", IP: net.IP{172, 241, 25, 181}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-016.vpn.privado.io", IP: net.IP{172, 241, 25, 183}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-017.vpn.privado.io", IP: net.IP{172, 241, 25, 185}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-018.vpn.privado.io", IP: net.IP{172, 241, 30, 65}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-020.vpn.privado.io", IP: net.IP{172, 241, 30, 69}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-021.vpn.privado.io", IP: net.IP{172, 241, 30, 71}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-022.vpn.privado.io", IP: net.IP{172, 241, 30, 73}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-023.vpn.privado.io", IP: net.IP{172, 241, 30, 75}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-024.vpn.privado.io", IP: net.IP{172, 241, 30, 77}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-025.vpn.privado.io", IP: net.IP{172, 241, 30, 79}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-026.vpn.privado.io", IP: net.IP{172, 241, 30, 81}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-028.vpn.privado.io", IP: net.IP{172, 241, 30, 85}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-029.vpn.privado.io", IP: net.IP{172, 241, 30, 87}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-030.vpn.privado.io", IP: net.IP{172, 241, 30, 89}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-032.vpn.privado.io", IP: net.IP{172, 241, 30, 93}}, + {Country: "United States", Region: "Texas", City: "Dallas", Hostname: "dfw-033.vpn.privado.io", IP: net.IP{172, 241, 30, 95}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-003.vpn.privado.io", IP: net.IP{85, 12, 61, 30}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-004.vpn.privado.io", IP: net.IP{85, 12, 61, 40}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-005.vpn.privado.io", IP: net.IP{85, 12, 61, 50}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-006.vpn.privado.io", IP: net.IP{85, 12, 61, 60}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-007.vpn.privado.io", IP: net.IP{85, 12, 61, 70}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-008.vpn.privado.io", IP: net.IP{85, 12, 61, 80}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-009.vpn.privado.io", IP: net.IP{85, 12, 61, 90}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-011.vpn.privado.io", IP: net.IP{85, 12, 61, 110}}, + {Country: "United States", Region: "Virginia", City: "Ashburn", Hostname: "dca-012.vpn.privado.io", IP: net.IP{85, 12, 61, 120}}, + {Country: "United States", Region: "Washington", City: "Mirrormont", Hostname: "sea-003.vpn.privado.io", IP: net.IP{23, 19, 87, 109}}, + {Country: "United States", Region: "Washington", City: "Mirrormont", Hostname: "sea-004.vpn.privado.io", IP: net.IP{23, 19, 87, 116}}, + {Country: "United States", Region: "Washington", City: "Seattle", Hostname: "sea-001.vpn.privado.io", IP: net.IP{23, 81, 208, 96}}, + {Country: "United States", Region: "Washington", City: "Seattle", Hostname: "sea-002.vpn.privado.io", IP: net.IP{23, 81, 208, 104}}, + {Country: "United States", Region: "Washington, D.C.", City: "Washington", Hostname: "dca-013.vpn.privado.io", IP: net.IP{185, 247, 68, 3}}, + {Country: "United States", Region: "Washington, D.C.", City: "Washington", Hostname: "dca-014.vpn.privado.io", IP: net.IP{185, 247, 68, 14}}, } } diff --git a/internal/constants/servers.go b/internal/constants/servers.go index 08d5886a..f22f5f2c 100644 --- a/internal/constants/servers.go +++ b/internal/constants/servers.go @@ -32,8 +32,8 @@ func GetAllServers() (allServers models.AllServers) { Servers: NordvpnServers(), }, Privado: models.PrivadoServers{ - Version: 2, - Timestamp: 1620435633, + Version: 3, + Timestamp: 1620520278, Servers: PrivadoServers(), }, Privatevpn: models.PrivatevpnServers{ diff --git a/internal/constants/servers_test.go b/internal/constants/servers_test.go index 6f994c2b..efe7472d 100644 --- a/internal/constants/servers_test.go +++ b/internal/constants/servers_test.go @@ -62,7 +62,7 @@ func Test_versions(t *testing.T) { "Privado": { model: models.PrivadoServer{}, version: allServers.Privado.Version, - digest: "1d5aeb23", + digest: "dba6736c", }, "Private Internet Access": { model: models.PIAServer{}, @@ -168,7 +168,7 @@ func Test_timestamps(t *testing.T) { "Privado": { servers: allServers.Privado.Servers, timestamp: allServers.Privado.Timestamp, - digest: "d0892def", + digest: "df378478", }, "Private Internet Access": { servers: allServers.Pia.Servers, diff --git a/internal/models/server.go b/internal/models/server.go index 899fe9ae..e608e7dd 100644 --- a/internal/models/server.go +++ b/internal/models/server.go @@ -78,13 +78,16 @@ func (s *NordvpnServer) String() string { } type PrivadoServer struct { - IP net.IP `json:"ip"` + Country string `json:"country"` + Region string `json:"region"` + City string `json:"city"` Hostname string `json:"hostname"` + IP net.IP `json:"ip"` } func (s *PrivadoServer) String() string { - return fmt.Sprintf("{Hostname: %q, IP: %s}", - s.Hostname, goStringifyIP(s.IP)) + return fmt.Sprintf("{Country: %q, Region: %q, City: %q, Hostname: %q, IP: %s}", + s.Country, s.Region, s.City, s.Hostname, goStringifyIP(s.IP)) } type PIAServer struct { diff --git a/internal/provider/privado.go b/internal/provider/privado.go index 6a795fcf..623e64d6 100644 --- a/internal/provider/privado.go +++ b/internal/provider/privado.go @@ -28,10 +28,13 @@ func newPrivado(servers []models.PrivadoServer, timeNow timeNowFunc) *privado { } } -func (s *privado) filterServers(hostnames []string) (servers []models.PrivadoServer) { +func (s *privado) filterServers(countries, regions, cities, hostnames []string) (servers []models.PrivadoServer) { for _, server := range s.servers { switch { - case filterByPossibilities(server.Hostname, hostnames): + case filterByPossibilities(server.Country, countries), + filterByPossibilities(server.Region, regions), + filterByPossibilities(server.City, cities), + filterByPossibilities(server.Hostname, hostnames): default: servers = append(servers, server) } @@ -52,7 +55,8 @@ func (s *privado) GetOpenVPNConnection(selection configuration.ServerSelection) return models.OpenVPNConnection{IP: selection.TargetIP, Port: port, Protocol: selection.Protocol}, nil } - servers := s.filterServers(selection.Hostnames) + servers := s.filterServers(selection.Countries, selection.Regions, + selection.Cities, selection.Hostnames) if len(servers) == 0 { return connection, fmt.Errorf("no server found for cities %s and server numbers %v", commaJoin(selection.Cities), selection.Numbers) diff --git a/internal/updater/providers.go b/internal/updater/providers.go index dea45c44..efb91e59 100644 --- a/internal/updater/providers.go +++ b/internal/updater/providers.go @@ -124,7 +124,7 @@ func (u *updater) updatePIA(ctx context.Context) (err error) { func (u *updater) updatePrivado(ctx context.Context) (err error) { minServers := getMinServers(len(u.servers.Privado.Servers)) servers, warnings, err := privado.GetServers( - ctx, u.unzipper, u.presolver, minServers) + ctx, u.unzipper, u.client, u.presolver, minServers) if u.options.CLI { for _, warning := range warnings { u.logger.Warn("Privado: %s", warning) diff --git a/internal/updater/providers/privado/location.go b/internal/updater/providers/privado/location.go new file mode 100644 index 00000000..3998075f --- /dev/null +++ b/internal/updater/providers/privado/location.go @@ -0,0 +1,31 @@ +package privado + +import ( + "context" + "net" + "net/http" + + "github.com/qdm12/gluetun/internal/models" + "github.com/qdm12/gluetun/internal/publicip" +) + +func setLocationInfo(ctx context.Context, client *http.Client, servers []models.PrivadoServer) (err error) { + // Get public IP address information + ipsToGetInfo := make([]net.IP, len(servers)) + for i := range servers { + ipsToGetInfo[i] = servers[i].IP + } + ipsInfo, err := publicip.MultiInfo(ctx, client, ipsToGetInfo) + if err != nil { + return err + } + + for i := range servers { + ipInfo := ipsInfo[i] + servers[i].Country = ipInfo.Country + servers[i].Region = ipInfo.Region + servers[i].City = ipInfo.City + } + + return nil +} diff --git a/internal/updater/providers/privado/servers.go b/internal/updater/providers/privado/servers.go index 1297b655..caf57b24 100644 --- a/internal/updater/providers/privado/servers.go +++ b/internal/updater/providers/privado/servers.go @@ -6,6 +6,7 @@ import ( "context" "errors" "fmt" + "net/http" "strings" "github.com/qdm12/gluetun/internal/models" @@ -17,7 +18,7 @@ import ( var ErrNotEnoughServers = errors.New("not enough servers found") func GetServers(ctx context.Context, unzipper unzip.Unzipper, - presolver resolver.Parallel, minServers int) ( + client *http.Client, presolver resolver.Parallel, minServers int) ( servers []models.PrivadoServer, warnings []string, err error) { const url = "https://privado.io/apps/ovpn_configs.zip" contents, err := unzipper.FetchAndExtract(ctx, url) @@ -66,6 +67,10 @@ func GetServers(ctx context.Context, unzipper unzip.Unzipper, servers = hts.toServersSlice() + if err := setLocationInfo(ctx, client, servers); err != nil { + return nil, warnings, err + } + sortServers(servers) return servers, warnings, nil diff --git a/internal/updater/providers/privado/sort.go b/internal/updater/providers/privado/sort.go index 22e108d0..b77cdcd9 100644 --- a/internal/updater/providers/privado/sort.go +++ b/internal/updater/providers/privado/sort.go @@ -8,6 +8,15 @@ import ( func sortServers(servers []models.PrivadoServer) { sort.Slice(servers, func(i, j int) bool { - return servers[i].Hostname < servers[j].Hostname + if servers[i].Country == servers[j].Country { + if servers[i].Region == servers[j].Region { + if servers[i].City == servers[j].City { + return servers[i].Hostname < servers[j].Hostname + } + return servers[i].City < servers[j].City + } + return servers[i].Region < servers[j].Region + } + return servers[i].Country < servers[j].Country }) }