44 lines
893 B
Go
44 lines
893 B
Go
package syscalls1
|
|
|
|
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
|
|
}
|