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() { }