package collector import ( "net" "sort" ) // networkAddressSets 将接口地址拆分为确定顺序的 IPv4 与 IPv6 列表。 func networkAddressSets(values map[string]struct{}) (ipv4s []string, ipv6s []string) { for value := range values { host, _, err := net.ParseCIDR(value) if err != nil { host = net.ParseIP(value) } if host == nil { continue } if host.To4() != nil { ipv4s = append(ipv4s, value) continue } ipv6s = append(ipv6s, value) } sort.Strings(ipv4s) sort.Strings(ipv6s) return ipv4s, ipv6s }