func CheckIP(ip string) bool {
addr := strings.Trim(ip, " ")
regStr := `^(([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.)(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){2}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$`
if match, _ := regexp.MatchString(regStr, addr); match {
return true
}
return false
}
func GetLocalIP() (string, bool) {
addrs, err := net.InterfaceAddrs()
if err != nil {
mlog.log.Error("Get local ip error %s", err)
return "", false
}
for _, address := range addrs {
// 检查ip地址判断是否回环地址
if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
return ipnet.IP.String(), true
}
}
}
mlog.log.Error("Get local ip there is no interface to get ip")
return "", false
}