sysinfo_window.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // +build windows
  2. package hardwareinfo
  3. import (
  4. "encoding/json"
  5. "log"
  6. "net/http"
  7. "strconv"
  8. )
  9. func GetCPUInfo(w http.ResponseWriter, r *http.Request) {
  10. CPUInfo := CPUInfo{
  11. Freq: wmicGetinfo("cpu", "CurrentClockSpeed")[0],
  12. Hardware: "unknown",
  13. Instruction: wmicGetinfo("cpu", "Caption")[0],
  14. Model: wmicGetinfo("cpu", "Name")[0],
  15. Revision: "unknown",
  16. }
  17. var jsonData []byte
  18. jsonData, err := json.Marshal(CPUInfo)
  19. if err != nil {
  20. log.Println(err)
  21. }
  22. sendTextResponse(w, string(jsonData))
  23. }
  24. func Ifconfig(w http.ResponseWriter, r *http.Request) {
  25. var arr []string
  26. for _, info := range wmicGetinfo("nic", "ProductName") {
  27. arr = append(arr, info)
  28. }
  29. var jsonData []byte
  30. jsonData, err := json.Marshal(arr)
  31. if err != nil {
  32. log.Println(err)
  33. }
  34. sendTextResponse(w, string(jsonData))
  35. }
  36. func GetDriveStat(w http.ResponseWriter, r *http.Request) {
  37. var DeviceID []string = wmicGetinfo("logicaldisk", "DeviceID")
  38. var FileSystem []string = wmicGetinfo("logicaldisk", "FileSystem")
  39. var FreeSpace []string = wmicGetinfo("logicaldisk", "FreeSpace")
  40. var arr []LogicalDisk
  41. for i, info := range DeviceID {
  42. LogicalDisk := LogicalDisk{
  43. DriveLetter: info,
  44. FileSystem: FileSystem[i],
  45. FreeSpace: FreeSpace[i],
  46. }
  47. arr = append(arr, LogicalDisk)
  48. }
  49. var jsonData []byte
  50. jsonData, err := json.Marshal(arr)
  51. if err != nil {
  52. log.Println(err)
  53. }
  54. sendTextResponse(w, string(jsonData))
  55. }
  56. func GetUSB(w http.ResponseWriter, r *http.Request) {
  57. var arr []string
  58. for _, info := range wmicGetinfo("Win32_USBHub", "Description") {
  59. arr = append(arr, info)
  60. }
  61. var jsonData []byte
  62. jsonData, err := json.Marshal(arr)
  63. if err != nil {
  64. log.Println(err)
  65. }
  66. sendTextResponse(w, string(jsonData))
  67. }
  68. func GetRamInfo(w http.ResponseWriter, r *http.Request) {
  69. var RAMsize int = 0
  70. for _, info := range wmicGetinfo("memorychip", "Capacity") {
  71. DIMMCapacity, _ := strconv.Atoi(info)
  72. RAMsize += DIMMCapacity
  73. }
  74. var jsonData []byte
  75. jsonData, err := json.Marshal(RAMsize)
  76. if err != nil {
  77. log.Println(err)
  78. }
  79. sendTextResponse(w, string(jsonData))
  80. }