18 lines
556 B
Go
18 lines
556 B
Go
package hostparse
|
|
|
|
import "strings"
|
|
|
|
// MatchZone возвращает наиболее специфичную зону из zones, которой принадлежит host
|
|
// (host равен зоне или является её поддоменом). Зоны и host ожидаются нормализованными.
|
|
func MatchZone(host string, zones []string) (string, bool) {
|
|
best := ""
|
|
for _, z := range zones {
|
|
if host == z || strings.HasSuffix(host, "."+z) {
|
|
if len(z) > len(best) {
|
|
best = z
|
|
}
|
|
}
|
|
}
|
|
return best, best != ""
|
|
}
|