Files
ProjectOctopus/agent-wdd/config/Info.go
2025-02-10 15:07:44 +08:00

68 lines
1.1 KiB
Go

package config
import (
"net"
"runtime"
)
type AgentServerInfo struct {
NetworkInfo
CPUInfo
}
type NetworkInfo struct {
Interfaces []InterfaceInfo
}
type InterfaceInfo struct {
Name string
HardwareAddr string
Addrs []string
}
func GetNetworkInfo() (*NetworkInfo, error) {
interfaces, err := net.Interfaces()
if err != nil {
return nil, err
}
var networkInfo NetworkInfo
for _, iface := range interfaces {
var addrs []string
addresses, err := iface.Addrs()
if err != nil {
return nil, err
}
for _, addr := range addresses {
addrs = append(addrs, addr.String())
}
interfaceInfo := InterfaceInfo{
Name: iface.Name,
HardwareAddr: iface.HardwareAddr.String(),
Addrs: addrs,
}
networkInfo.Interfaces = append(networkInfo.Interfaces, interfaceInfo)
}
return &networkInfo, nil
}
type CPUInfo struct {
ModelName string
Cores int
Mhz float64
}
func GetCpuInfo() CPUInfo {
info := CPUInfo{}
info.ModelName = runtime.GOARCH
info.Cores = runtime.NumCPU()
info.Mhz = 0.0
return info
}
func (info *AgentServerInfo) GetAgentInfo() {
}