livedns-go/dns/spf.go
2025-01-01 20:51:16 +01:00

32 lines
586 B
Go

package dns
import (
"strings"
)
func UpdateSpf(value, ip4, ip6 string) string {
items := strings.Split(value, " ")
data := []string{}
doneIp4 := false
doneIp6 := false
for _, item := range items {
elements := strings.Split(item, ":")
if len(elements) > 0 {
if elements[0] == "ip4" && !doneIp4 {
elements = []string{"ip4", ip4}
doneIp4 = true
} else if elements[0] == "ip6" && !doneIp6 {
elements = []string{"ip6", ip6}
doneIp6 = true
}
item = strings.Join(elements, ":")
}
data = append(data, item)
}
return strings.Join(data, " ")
}