Added icanhazip resolver
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2024-02-21 22:38:19 +13:00
parent 5e4a7f8135
commit a977adf929
2 changed files with 33 additions and 0 deletions

View File

@@ -25,6 +25,8 @@ func getResolver(resolverName string) (PublicIpResolver, string) {
return public_resolvers.NewDefaultCloudflareTrace(), public_resolvers.CloudflareTraceTag return public_resolvers.NewDefaultCloudflareTrace(), public_resolvers.CloudflareTraceTag
case public_resolvers.V4IdentMeTag: case public_resolvers.V4IdentMeTag:
return public_resolvers.NewV4IdentMeDefault(), public_resolvers.V4IdentMeTag return public_resolvers.NewV4IdentMeDefault(), public_resolvers.V4IdentMeTag
case public_resolvers.IcanhazipTag:
return public_resolvers.NewIcanhazipDefault(), public_resolvers.IcanhazipTag
case public_resolvers.IfConfigMeTag: case public_resolvers.IfConfigMeTag:
fallthrough fallthrough
default: default:

View File

@@ -0,0 +1,31 @@
package public_resolvers
import (
"net/http"
"time"
)
const (
IcanhazipTag = "icanhazip"
IcanhazipUrl = "https://v4.icanhazip.com/"
)
type Icanhazip struct {
baseResolver
}
func NewIcanhazipDefault() *Icanhazip {
return NewIcanhazip(&http.Client{
Timeout: 10 * time.Second,
})
}
func NewIcanhazip(client Doer) *Icanhazip {
return &Icanhazip{
baseResolver: baseResolver{
client: client,
url: v4IdentMeUrl,
ipParser: defaultIpParser,
},
}
}