liuxiaolong
2019-12-13 cecfe3aafb8424e74b6b4fab0f212c88f025af18
extend/util/util.go
@@ -3,18 +3,14 @@
import (
   "bytes"
   "encoding/json"
   "errors"
   "image"
   "io/ioutil"
   "net"
   "net/http"
   "os/exec"
   "strconv"
   "webserver/extend/code"
   "basic.com/pubsub/protomsg.git"
   "github.com/gin-gonic/gin"
   "github.com/golang/glog"
   "github.com/pierrec/lz4"
   "gocv.io/x/gocv"
@@ -39,7 +35,6 @@
// ResponseFormat 返回数据格式化
func ResponseFormat(c *gin.Context, respStatus *code.Code, data interface{}) {
   if respStatus == nil {
      glog.Error("response status param not found!")
      respStatus = code.RequestParamError
   }
   c.JSON(respStatus.Status, gin.H{
@@ -136,45 +131,6 @@
   return
}
// 获取本机网卡IP
func GetLocalIP(networkName string) (ipv4 string, mask string, err error) {
   interfaces, err := net.Interfaces()
   if err != nil {
      return "", "", err
   }
   for _, i := range interfaces {
      byName, err := net.InterfaceByName(i.Name)
      if err != nil {
         return "", "", err
      }
      addresses, err := byName.Addrs()
      for _, v := range addresses {
         if ipnet, ok := v.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
            if ipnet.IP.To4() != nil {
               if byName.Name == networkName {
                  maskStr := ipnet.Mask.String()
                  mask64, _ := strconv.ParseUint(maskStr, 16, 32)
                  return ipnet.IP.String(), IpIntToString(int(mask64)), nil
               }
            }
         }
      }
   }
   return "", "", errors.New("ipv4 not found")
}
func GetDefaultRoute(networkName string) (route string, err error) {
   cmdStr := fmt.Sprintf("ip route show | grep -P \"^default.*%s\" | awk '{print $3}'", networkName)
   cmd := exec.Command("/bin/sh", "-c", cmdStr)
   b, err := cmd.Output()
   if err != nil {
      return "", err
   }
   return string(b), nil
}
func StringIpToInt(ipstring string) int {
   ipSegs := strings.Split(ipstring, ".")
   var ipInt int = 0
@@ -215,6 +171,14 @@
   return float32(f)
}
func ParseScore64(compareScore float64) float64 {
   if compareScore < 1 {
      compareScore = compareScore * 100
   }
   f, _ := strconv.ParseFloat(fmt.Sprintf("%2.2f", compareScore), 64)
   return f
}
// UnCompress uncompress
func UnCompress(in []byte) ([]byte, error) {
   out := make([]byte, 10*len(in))