|
|
|
@ -1,6 +1,7 @@ |
|
|
|
package core |
|
|
|
|
|
|
|
import ( |
|
|
|
"aufs/config" |
|
|
|
"encoding/json" |
|
|
|
"fmt" |
|
|
|
"net" |
|
|
|
@ -9,6 +10,7 @@ import ( |
|
|
|
"os/exec" |
|
|
|
"os/user" |
|
|
|
"runtime" |
|
|
|
"strings" |
|
|
|
) |
|
|
|
|
|
|
|
// json 结构体
|
|
|
|
@ -26,7 +28,8 @@ type HdResp struct { |
|
|
|
// 服务器的硬件信息
|
|
|
|
func Hdinfo(w http.ResponseWriter, r *http.Request) { |
|
|
|
// 获取服务器的信息
|
|
|
|
hostip, err := GetHostIP() |
|
|
|
hostip, err := config.GetLocalIP() |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
fmt.Println("获取主机IP失败:", err) |
|
|
|
return |
|
|
|
@ -41,9 +44,11 @@ func Hdinfo(w http.ResponseWriter, r *http.Request) { |
|
|
|
Status: "success", |
|
|
|
Hip: hostip, |
|
|
|
Hname: hostname, |
|
|
|
Cpu: runtime.NumCPU(), |
|
|
|
Mem: fmt.Sprintf("%d", runtime.NumGoroutine()), |
|
|
|
Disks: "", // 因 getDiskInfo 未定义,暂时使用空字符串占位,需实现 getDiskInfo 函数后再修改
|
|
|
|
Cpu: fmt.Sprintf("%d", runtime.NumCPU()), // cpu、的数量
|
|
|
|
|
|
|
|
Mem: fmt.Sprintf("%d", runtime.NumGoroutine()), |
|
|
|
Disks: "", // 因 getDiskInfo 未定义,暂时使用空字符串占位,需实现 getDiskInfo 函数后再修改,
|
|
|
|
Net: getMachieNet(), // 因 getMachieNet 未定义,暂时使用空字符串占位,需实现 getMachieNet 函数后再修改,
|
|
|
|
|
|
|
|
} |
|
|
|
// 开启跨域
|
|
|
|
@ -51,21 +56,35 @@ func Hdinfo(w http.ResponseWriter, r *http.Request) { |
|
|
|
json.NewEncoder(w).Encode(response) |
|
|
|
} |
|
|
|
|
|
|
|
func getMachieNet() { |
|
|
|
func getMachieNet() string { |
|
|
|
var ret []string |
|
|
|
ifaces, err := net.Interfaces() |
|
|
|
if err != nil { |
|
|
|
fmt.Println("无法获取网络接口信息:", err) |
|
|
|
} else { |
|
|
|
for _, iface := range ifaces { |
|
|
|
fmt.Println("网络接口名称:", iface.Name) |
|
|
|
fmt.Println("硬件地址 (MAC):", iface.HardwareAddr) |
|
|
|
ret = append(ret, iface.Name) |
|
|
|
ret = append(ret, iface.HardwareAddr.String()) |
|
|
|
// ip地址信息等
|
|
|
|
var ipaddr []string |
|
|
|
addrs, _ := iface.Addrs() |
|
|
|
for _, addr := range addrs { |
|
|
|
fmt.Println("IP地址:", addr.String()) |
|
|
|
ipaddr = append(ipaddr, addr.String()) |
|
|
|
} |
|
|
|
fmt.Println() |
|
|
|
// 合并到ret 中
|
|
|
|
ret = append(ret, strings.Join(ipaddr, ",")) |
|
|
|
|
|
|
|
// fmt.Println("网络接口名称:", iface.Name)
|
|
|
|
// fmt.Println("硬件地址 (MAC):", iface.HardwareAddr)
|
|
|
|
// addrs, _ := iface.Addrs()
|
|
|
|
// for _, addr := range addrs {
|
|
|
|
// fmt.Println("IP地址:", addr.String())
|
|
|
|
// }
|
|
|
|
// fmt.Println()
|
|
|
|
} |
|
|
|
} |
|
|
|
return strings.Join(ret, ",") |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
func getCurrentUser() (*user.User, error) { |
|
|
|
|