From f59d54faae5fe7ef45db6f76cba23c7acc253ffa Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 18 Jan 2021 12:35:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BE=85=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E7=89=88=E6=9C=AC=E5=8F=B7=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/node_status_executor.go | 2 ++ internal/utils/ip.go | 19 +++++++++++++++++++ internal/utils/version.go | 18 ++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 internal/utils/ip.go create mode 100644 internal/utils/version.go diff --git a/internal/nodes/node_status_executor.go b/internal/nodes/node_status_executor.go index c024d09..4532d5a 100644 --- a/internal/nodes/node_status_executor.go +++ b/internal/nodes/node_status_executor.go @@ -8,6 +8,7 @@ import ( "github.com/TeaOSLab/EdgeNode/internal/events" "github.com/TeaOSLab/EdgeNode/internal/remotelogs" "github.com/TeaOSLab/EdgeNode/internal/rpc" + "github.com/TeaOSLab/EdgeNode/internal/utils" "github.com/iwind/TeaGo/lists" "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/disk" @@ -55,6 +56,7 @@ func (this *NodeStatusExecutor) update() { status := &nodeconfigs.NodeStatus{} status.BuildVersion = teaconst.Version + status.BuildVersionCode = utils.VersionToLong(teaconst.Version) status.OS = runtime.GOOS status.Arch = runtime.GOARCH status.ConfigVersion = sharedNodeConfig.Version diff --git a/internal/utils/ip.go b/internal/utils/ip.go new file mode 100644 index 0000000..5810520 --- /dev/null +++ b/internal/utils/ip.go @@ -0,0 +1,19 @@ +package utils + +import ( + "encoding/binary" + "net" +) + +// 将IP转换为整型 +func IP2Long(ip string) uint32 { + s := net.ParseIP(ip) + if s == nil { + return 0 + } + + if len(s) == 16 { + return binary.BigEndian.Uint32(s[12:16]) + } + return binary.BigEndian.Uint32(s) +} diff --git a/internal/utils/version.go b/internal/utils/version.go new file mode 100644 index 0000000..8940a0c --- /dev/null +++ b/internal/utils/version.go @@ -0,0 +1,18 @@ +package utils + +import ( + "strings" +) + +// 计算版本代号 +func VersionToLong(version string) uint32 { + countDots := strings.Count(version, ".") + if countDots == 2 { + version += ".0" + } else if countDots == 1 { + version += ".0.0" + } else if countDots == 0 { + version += ".0.0.0" + } + return IP2Long(version) +}