func ClientIP4()

in internal/utils/net.go [42:60]


func ClientIP4() ([]byte, error) {
	if ifaces, err := net.Interfaces(); err == nil && ifaces != nil {
		for _, iface := range ifaces {
			if iface.Flags&net.FlagLoopback != 0 || iface.Flags&net.FlagUp == 0 {
				continue
			}
			if addrs, err := iface.Addrs(); err == nil && addrs != nil {
				for _, addr := range addrs {
					if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
						if ip4 := ipnet.IP.To4(); ip4 != nil {
							return ip4, nil
						}
					}
				}
			}
		}
	}
	return nil, errors.ErrUnknownIP
}