68 lines
1.1 KiB
Go
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() {
|
|
|
|
}
|