in utils.go [411:437]
func ethrLookupIP(server string) (net.IPAddr, string, error) {
var ipAddr net.IPAddr
var ipStr string
ip := net.ParseIP(server)
if ip != nil {
ipAddr.IP = ip
ipStr = server
return ipAddr, ipStr, nil
}
ips, err := net.LookupIP(server)
if err != nil {
ui.printErr("Failed to lookup IP address for the server: %v. Error: %v", server, err)
return ipAddr, ipStr, err
}
for _, ip := range ips {
if gIPVersion == ethrIPAny || (gIPVersion == ethrIPv4 && ip.To4() != nil) || (gIPVersion == ethrIPv6 && ip.To16() != nil) {
ipAddr.IP = ip
ipStr = ip.String()
ui.printDbg("Resolved server: %v to IP address: %v\n", server, ip)
return ipAddr, ipStr, nil
}
}
ui.printErr("Unable to resolve the given server: %v to an IP address.", server)
return ipAddr, ipStr, os.ErrNotExist
}