Files
jiacrontab/pkg/util/ip.go
jiazhizhong 1279635d7f fix
2022-03-10 17:09:03 +08:00

31 lines
548 B
Go

package util
import (
"net"
"strings"
)
// InternalIP return internal ip.
func InternalIP() string {
inters, err := net.Interfaces()
if err != nil {
return ""
}
for _, inter := range inters {
if inter.Flags&net.FlagUp != 0 && !strings.HasPrefix(inter.Name, "lo") {
addrs, err := inter.Addrs()
if err != nil {
continue
}
for _, addr := range addrs {
if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
return ipnet.IP.String()
}
}
}
}
}
return ""
}