util.go 735 B

1234567891011121314151617181920212223242526272829303132333435
  1. package common
  2. import (
  3. "fmt"
  4. "math"
  5. "net"
  6. )
  7. // GetLocalIP 获取本地内网IP地址
  8. func GetLocalIP() (string, error) {
  9. adders, err := net.InterfaceAddrs()
  10. if err != nil {
  11. return "", err
  12. }
  13. for _, addr := range adders {
  14. if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
  15. if ipnet.IP.To4() != nil {
  16. return ipnet.IP.String(), nil
  17. }
  18. }
  19. }
  20. return "", fmt.Errorf("unable to determine local ip")
  21. }
  22. // SplitPower 多维权限拆解
  23. // xyz【1需要 0 不需要】
  24. // SplitPower(1001)=[]bool{true,false,false,true}
  25. func SplitPower(power, num int) []bool {
  26. boolArr := make([]bool, num)
  27. for i := 0; i < num; i++ {
  28. boolArr[num-i-1] = power/int(math.Pow(10, float64(i)))%10 == 1
  29. }
  30. return boolArr
  31. }