From afe89beee68f026b532c9d3132f9539f826e198b Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期一, 22 七月 2019 14:21:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- controllers/syssetcont.go | 6 +++ extend/logger/logger.go | 2 config/dev.yaml | 1 extend/util/util.go | 77 ++++++++++++++++++++++++++++++++++++++ main.go | 2 extend/config/config.go | 1 6 files changed, 87 insertions(+), 2 deletions(-) diff --git a/config/dev.yaml b/config/dev.yaml index c8e48e5..cc83bd5 100644 --- a/config/dev.yaml +++ b/config/dev.yaml @@ -4,6 +4,7 @@ jwtExpire: 24 url: http://127.0.0.1:8080 imageUrl: http://192.168.1.203:6080 + networkAdapter: enp59s0f1 weedfs: ip: 192.168.1.203 uploadport: 6333 diff --git a/controllers/syssetcont.go b/controllers/syssetcont.go index fb4aa71..ef1888c 100644 --- a/controllers/syssetcont.go +++ b/controllers/syssetcont.go @@ -4,6 +4,7 @@ "basic.com/dbapi.git" "github.com/gin-gonic/gin" "webserver/extend/code" + "webserver/extend/config" "webserver/extend/util" ) @@ -147,6 +148,11 @@ }else { resData["server_id"] = sysconf.GetServerId() resData["server_name"] = sysconf.GetServerName() + ipv4, mask, _ := util.GetLocalIP(config.Server.NetworkAdapter) + gateway, _ := util.GetDefaultRoute(config.Server.NetworkAdapter) + resData["ip"] = ipv4 + resData["subMask"] = mask + resData["gateway"] = gateway // 瀛樺湪 util.ResponseFormat(c, code.Success, resData) } diff --git a/extend/config/config.go b/extend/config/config.go index 4b182ee..3de0097 100644 --- a/extend/config/config.go +++ b/extend/config/config.go @@ -12,6 +12,7 @@ JwtExpire string `mapstructure: "jwtExpire"` Url string `mapstructure: "url"` ImageUrl string `mapstructure: "imageUrl"` + NetworkAdapter string `mapstructure: "networkAdapter"` } var Server = &server{} diff --git a/extend/logger/logger.go b/extend/logger/logger.go index 73b919c..ecfbbd2 100644 --- a/extend/logger/logger.go +++ b/extend/logger/logger.go @@ -183,7 +183,7 @@ } func (me *LogFile) createLogFile() { - logdir := "./" + logdir := "./logger/" if index := strings.LastIndex(me.fileName, "/"); index != -1 { logdir = me.fileName[0:index] + "/" os.MkdirAll(me.fileName[0:index], os.ModePerm) diff --git a/extend/util/util.go b/extend/util/util.go index 77cd755..cc2dd98 100644 --- a/extend/util/util.go +++ b/extend/util/util.go @@ -2,11 +2,16 @@ import ( "basic.com/pubsub/protomsg.git" + "bytes" "encoding/json" + "errors" "github.com/gin-gonic/gin" "github.com/golang/glog" "gocv.io/x/gocv" "image" + "net" + "os/exec" + "strconv" "webserver/extend/code" "crypto/rand" @@ -112,4 +117,76 @@ y1_new = int(i.Height) } 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("route | grep -P \"^default.*%s$\" | awk '{print $2}'",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 + var pos uint = 24 + for _, ipSeg := range ipSegs { + tempInt, _ := strconv.Atoi(ipSeg) + tempInt = tempInt << pos + ipInt = ipInt | tempInt + pos -= 8 + } + return ipInt +} + +func IpIntToString(ipInt int) string{ + ipSegs := make([]string, 4) + var len int = len(ipSegs) + buffer := bytes.NewBufferString("") + for i := 0; i < len; i++ { + tempInt := ipInt & 0xFF + ipSegs[len-i-1] = strconv.Itoa(tempInt) + + ipInt = ipInt >> 8 + } + for i := 0; i < len; i++ { + buffer.WriteString(ipSegs[i]) + if i < len-1 { + buffer.WriteString(".") + } + } + return buffer.String() } \ No newline at end of file diff --git a/main.go b/main.go index 7f85196..46d64eb 100644 --- a/main.go +++ b/main.go @@ -14,7 +14,7 @@ var dbIp = flag.String("dbIp","127.0.0.1","default dbIp=127.0.0.1") var dbPort = flag.String("dbPort","8001","default dbPort=8001") func init(){ - var logFile = "./webserver.log" + var logFile = "./logger/webserver.log" var logSaveDays = 15 // 鏃ュ織鍒濆鍖� -- Gitblit v1.8.0