package resolver import ( "net/http" httpres "dnsupdater/ip/resolver/http" ) var services []Service func Provide(service Service) { services = append(services, service) } func Get(name string) Service { for _, service := range services { if service.Name() == name { return service } } return nil } func init() { Provide(&httpres.Service{ ServiceName: "jsonip", Url: "https://jsonip.com", Decoder: JsonipDecoder, }) Provide(&httpres.Service{ ServiceName: "ifconfig.me", Url: "https://ifconfig.me/ip", }) Provide(&httpres.Service{ ServiceName: "ip.me", Url: "https://ip.me", Headers: http.Header{ "User-Agent": []string{"curl"}, }, }) Provide(&httpres.Service{ ServiceName: "ipecho", Url: "http://ipecho.net/plain", }) Provide(&httpres.Service{ ServiceName: "icanhazip", Url: "https://icanhazip.com", }) }