Files
gluetun/internal/models/server.go

193 lines
6.3 KiB
Go
Raw Normal View History

package models
import (
"net"
)
type CyberghostServer struct {
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"`
}
2021-09-23 10:19:30 -07:00
type ExpressvpnServer struct {
Country string `json:"country,omitempty"`
2021-09-23 10:19:30 -07: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 10:19:30 -07:00
}
2021-03-05 23:12:19 -05:00
type FastestvpnServer struct {
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
}
type HideMyAssServer struct {
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"`
}
type IpvanishServer struct {
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-05-31 00:11:16 +00:00
type IvpnServer struct {
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"`
WgPubKey string `json:"wgpubkey,omitempty"`
TCP bool `json:"tcp,omitempty"`
UDP bool `json:"udp,omitempty"`
IPs []net.IP `json:"ips,omitempty"`
2021-05-31 00:11:16 +00:00
}
type MullvadServer struct {
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"`
WgPubKey string `json:"wgpubkey,omitempty"`
}
type NordvpnServer struct { //nolint:maligned
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-10-05 10:44:15 -07:00
type PerfectprivacyServer struct {
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
}
type PrivadoServer struct {
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"`
}
type PIAServer struct {
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-03-05 23:12:19 -05:00
type PrivatevpnServer struct {
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
}
type ProtonvpnServer struct {
Country string `json:"country,omitempty"`
Region string `json:"region,omitempty"`
City string `json:"city,omitempty"`
Name string `json:"name,omitempty"`
Hostname string `json:"hostname,omitempty"`
EntryIP net.IP `json:"entry_ip,omitempty"`
ExitIPs []net.IP `json:"exit_ip,omitempty"` // TODO verify it matches with public IP once connected
}
type PurevpnServer struct {
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"`
}
type SurfsharkServer struct {
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"`
}
type TorguardServer struct {
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"`
}
type VPNUnlimitedServer struct {
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"`
}
type VyprvpnServer struct {
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"`
}
2021-09-23 07:58:13 -07:00
type WevpnServer struct {
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
}
type WindscribeServer struct {
VPN string `json:"vpn,omitempty"`
Region string `json:"region,omitempty"`
City string `json:"city,omitempty"`
Hostname string `json:"hostname,omitempty"`
OvpnX509 string `json:"x509,omitempty"`
WgPubKey string `json:"wgpubkey,omitempty"`
IPs []net.IP `json:"ips,omitempty"`
2020-11-08 20:56:49 -05:00
}