package utils import ( "fmt" "strings" ) func GetZone(domain string) (string, error) { splt := strings.Split(domain, ".") if len(splt) == 1 { return "", fmt.Errorf("invalid domain %s", domain) } if len(splt) == 2 { return domain, nil } return splt[len(splt)-2] + "." + splt[len(splt)-1], nil } func GetSubdomain(domain string) (string, error) { top, err := GetZone(domain) if err != nil { return "", err } sub := strings.TrimSuffix(domain, top) return strings.TrimSuffix(sub, "."), nil }