package netutil

import (
	"net"
	"strconv"
	"strings"
)

// GetLocalIP will return a local IP(non-loopback, non 0.0.0.0), if there is one
func GetLocalIP() string {
	addrs, err := net.InterfaceAddrs()
	if err == nil {
		for _, address := range addrs {
			ipnet, ok := address.(*net.IPNet)
			if ok && ipnet.IP.IsGlobalUnicast() {
				return ipnet.IP.String()
			}
		}
	}
	return ""
}

func ParsePort(addr string) string {
	strs := strings.Split(addr, ":")
	if len(strs) > 1 && len(strs[1]) > 0 {
		if _, err := strconv.Atoi(strs[1]); err == nil {
			return strs[1]
		}
	}
	return ""
}
