package hostinfo import ( "syscall" "fmt" "strings" ) var( OSVersion string MachineName string MachineVers string MachineRelease string MachineOutput string MachineOS string ) func UnameInfo()([]string) { var strs []string var uname syscall.Utsname if err := syscall.Uname(&uname); err != nil { fmt.Printf("Uname: %v", err) } MachineName := arrayToString(uname.Nodename) MachineRelease := arrayToString(uname.Release) MachineVers:= arrayToString(uname.Version) MachineOS := arrayToString(uname.Machine) strs = append(strs, MachineName,"|", MachineOS,"|", MachineVers,"|", MachineRelease) fmt.Println(strs) return strs } func arrayToString(x [65]int8) string { var buf [65]byte for i, b := range x { buf[i] = byte(b) } str := string(buf[:]) if i := strings.Index(str, "\x00"); i != -1 { str = str[:i] } return str }