_, err := strconv.ParseInt(host, 10, 64)
if err == nil {
hp.IpAddress = host
} else {
hp.HostName = dbhost
}
使用host = sealinuxvm11我正在
error strconv.ParseInt: parsing " sealinuxvm11 ": invalid syntax
,主机= 192.168.24.10
strrconv.ParseInt: parsing " 192.168.24.10": invalid syntax
答案 0 :(得分:8)
应将IP地址解析为字符串。我使用net package的ParseIP来确定给定的字符串是IP还是主机
addr := net.ParseIP(host)
if addr == nil {
hp.IPAddress = host
} else {
hp.HostName = host
}
这可能会设置无效值的主机名。如果net.ParseIP
返回错误,请检查以确保主机名是有效的主机名。会使用
hostName, err := net.LookupHost(host)
if len(hostName) > 0{
if hostName[0] == hp.HostName{
}
}
确定主机名是否有效
与评论中指出的Kosik类似,肯定有更好更快的方法来确定主机名是否有效。我建议你做一些如何实现的研究