package common import ( "fmt" "math" "net" ) // GetLocalIP 获取本地内网IP地址 func GetLocalIP() (string, error) { adders, err := net.InterfaceAddrs() if err != nil { return "", err } for _, addr := range adders { if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() { if ipnet.IP.To4() != nil { return ipnet.IP.String(), nil } } } return "", fmt.Errorf("unable to determine local ip") } // SplitPower 多维权限拆解 // xyz【1需要 0 不需要】 // SplitPower(1001)=[]bool{true,false,false,true} func SplitPower(power, num int) []bool { boolArr := make([]bool, num) for i := 0; i < num; i++ { boolArr[num-i-1] = power/int(math.Pow(10, float64(i)))%10 == 1 } return boolArr }