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) +}