示例#1
0
func Getaddr(lookuper sutils.Lookuper, hostname string) (ip net.IP) {
	ip = net.ParseIP(hostname)
	if ip != nil {
		return
	}
	addrs, err := lookuper.LookupIP(hostname)
	n := len(addrs)
	if err != nil || n == 0 {
		return nil
	}
	return addrs[rand.Intn(n)]
}
示例#2
0
文件: iplist.go 项目: zengkid/goproxy
func Getaddrs(lookuper sutils.Lookuper, hostname string) (ips []net.IP) {
	ip := net.ParseIP(hostname)
	if ip != nil {
		ips = append(ips, ip)
		return
	}
	ips, err := lookuper.LookupIP(hostname)
	if err != nil {
		log.Error("%s", err.Error())
	}
	return
}
示例#3
0
func Getaddr(lookuper sutils.Lookuper, hostname string) (ip net.IP) {
	ip = net.ParseIP(hostname)
	if ip != nil {
		return
	}
	addrs, err := lookuper.LookupIP(hostname)

	n := len(addrs)
	if err != nil {
		return nil
	}
	switch n {
	case 0:
		return nil
	case 1:
		return addrs[0]
	default:
		return addrs[rand.Intn(n)]
	}
}