2020-08-25 19:38:50 -04:00
|
|
|
package models
|
|
|
|
|
|
2020-08-28 08:17:04 -04:00
|
|
|
import (
|
|
|
|
|
"net"
|
|
|
|
|
)
|
|
|
|
|
|
2021-02-26 12:58:58 +00:00
|
|
|
type CyberghostServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2020-10-12 13:57:45 -04:00
|
|
|
}
|
|
|
|
|
|
2021-09-23 10:19:30 -07:00
|
|
|
type ExpressvpnServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
2021-09-23 10:19:30 -07:00
|
|
|
City string `json:"city,omitempty"`
|
2022-03-16 09:43:47 +00:00
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-09-23 10:19:30 -07:00
|
|
|
}
|
|
|
|
|
|
2021-03-05 23:12:19 -05:00
|
|
|
type FastestvpnServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-03-05 23:12:19 -05:00
|
|
|
}
|
|
|
|
|
|
2021-03-05 22:45:54 -05:00
|
|
|
type HideMyAssServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-03-05 22:45:54 -05:00
|
|
|
}
|
|
|
|
|
|
2021-06-20 09:21:48 -07:00
|
|
|
type IpvanishServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-06-20 09:21:48 -07:00
|
|
|
}
|
|
|
|
|
|
2021-05-31 00:11:16 +00:00
|
|
|
type IvpnServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
VPN string `json:"vpn,omitempty"`
|
|
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
ISP string `json:"isp,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
2021-08-23 16:01:01 +00:00
|
|
|
WgPubKey string `json:"wgpubkey,omitempty"`
|
2022-03-16 09:43:47 +00:00
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-05-31 00:11:16 +00:00
|
|
|
}
|
|
|
|
|
|
2020-08-25 19:38:50 -04:00
|
|
|
type MullvadServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
VPN string `json:"vpn,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
|
|
|
|
IPsV6 []net.IP `json:"ipsv6,omitempty"`
|
|
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
ISP string `json:"isp,omitempty"`
|
|
|
|
|
Owned bool `json:"owned,omitempty"`
|
2021-08-22 14:58:39 -07:00
|
|
|
WgPubKey string `json:"wgpubkey,omitempty"`
|
2020-08-25 19:38:50 -04:00
|
|
|
}
|
|
|
|
|
|
2021-02-26 12:58:58 +00:00
|
|
|
type NordvpnServer struct { //nolint:maligned
|
2022-03-16 09:43:47 +00:00
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
Number uint16 `json:"number,omitempty"`
|
|
|
|
|
IP net.IP `json:"ip,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
2021-02-26 12:58:58 +00:00
|
|
|
}
|
|
|
|
|
|
2021-10-05 10:44:15 -07:00
|
|
|
type PerfectprivacyServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
City string `json:"city,omitempty"` // primary key
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
2021-10-05 10:44:15 -07:00
|
|
|
}
|
|
|
|
|
|
2021-02-26 12:58:58 +00:00
|
|
|
type PrivadoServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
IP net.IP `json:"ip,omitempty"`
|
2020-08-25 19:38:50 -04:00
|
|
|
}
|
|
|
|
|
|
2021-02-26 12:58:58 +00:00
|
|
|
type PIAServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
ServerName string `json:"server_name,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
PortForward bool `json:"port_forward,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-02-26 12:58:58 +00:00
|
|
|
}
|
|
|
|
|
|
2021-03-05 23:12:19 -05:00
|
|
|
type PrivatevpnServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ip,omitempty"`
|
2021-03-05 23:12:19 -05:00
|
|
|
}
|
|
|
|
|
|
2021-04-25 15:44:45 -04:00
|
|
|
type ProtonvpnServer struct {
|
2022-03-16 09:44:57 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
2022-04-16 17:48:36 +00:00
|
|
|
Name string `json:"server_name,omitempty"`
|
2022-03-16 09:44:57 +00:00
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
EntryIP net.IP `json:"entry_ip,omitempty"`
|
2021-04-25 15:44:45 -04:00
|
|
|
}
|
|
|
|
|
|
2021-02-26 12:58:58 +00:00
|
|
|
type PurevpnServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-02-26 12:58:58 +00:00
|
|
|
}
|
|
|
|
|
|
2020-08-25 19:38:50 -04:00
|
|
|
type SurfsharkServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
Country string `json:"country,omitempty"` // Country is also used for multi-hop
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
RetroLoc string `json:"retroloc,omitempty"` // TODO remove in v4
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
MultiHop bool `json:"multihop,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2020-08-25 19:38:50 -04:00
|
|
|
}
|
|
|
|
|
|
2021-02-17 20:36:30 -05:00
|
|
|
type TorguardServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-02-17 20:36:30 -05:00
|
|
|
}
|
|
|
|
|
|
2021-06-20 09:18:03 -07:00
|
|
|
type VPNUnlimitedServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Country string `json:"country,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
Free bool `json:"free,omitempty"`
|
|
|
|
|
Stream bool `json:"stream,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-06-20 09:18:03 -07:00
|
|
|
}
|
|
|
|
|
|
2020-08-25 19:38:50 -04:00
|
|
|
type VyprvpnServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"` // only support for UDP
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2020-08-25 19:38:50 -04:00
|
|
|
}
|
|
|
|
|
|
2021-09-23 07:58:13 -07:00
|
|
|
type WevpnServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
|
|
|
|
TCP bool `json:"tcp,omitempty"`
|
|
|
|
|
UDP bool `json:"udp,omitempty"`
|
|
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2021-09-23 07:58:13 -07:00
|
|
|
}
|
|
|
|
|
|
2021-02-26 12:58:58 +00:00
|
|
|
type WindscribeServer struct {
|
2022-03-16 09:43:47 +00:00
|
|
|
VPN string `json:"vpn,omitempty"`
|
|
|
|
|
Region string `json:"region,omitempty"`
|
|
|
|
|
City string `json:"city,omitempty"`
|
|
|
|
|
Hostname string `json:"hostname,omitempty"`
|
2021-08-22 14:58:39 -07:00
|
|
|
OvpnX509 string `json:"x509,omitempty"`
|
|
|
|
|
WgPubKey string `json:"wgpubkey,omitempty"`
|
2022-03-16 09:43:47 +00:00
|
|
|
IPs []net.IP `json:"ips,omitempty"`
|
2020-11-08 20:56:49 -05:00
|
|
|
}
|